FixedMathSharp.Chronicler 8.0.0

dotnet add package FixedMathSharp.Chronicler --version 8.0.0
                    
NuGet\Install-Package FixedMathSharp.Chronicler -Version 8.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FixedMathSharp.Chronicler" Version="8.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FixedMathSharp.Chronicler" Version="8.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FixedMathSharp.Chronicler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FixedMathSharp.Chronicler --version 8.0.0
                    
#r "nuget: FixedMathSharp.Chronicler, 8.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FixedMathSharp.Chronicler@8.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FixedMathSharp.Chronicler&version=8.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FixedMathSharp.Chronicler&version=8.0.0
                    
Install as a Cake Tool

FixedMathSharp.Chronicler

FixedMathSharp.Chronicler connects FixedMathSharp to Chronicler: exact simulation-time conversions and deterministic ChronicleHashWriter extensions. Use it for long-running simulation clocks, replay checks, and state fingerprints.

Install

dotnet add package FixedMathSharp.Chronicler

Use FixedMathSharp.Chronicler.Lean when the rest of your application uses the FixedMathSharp Lean package graph. Both variants target .NET Standard 2.1 and .NET 10.

Record hashes

using Chronicler.Hashing;
using FixedMathSharp;
using FixedMathSharp.Chronicler;

var writer = new ChronicleHashWriter();

writer.WriteVector3d(new Vector3d(10, 2, -4));
writer.WriteQuaternion(FixedQuaternion.Identity);

ChronicleHash hash = writer.ToHash();

Extensions cover Fixed64, vectors, quaternions, matrices, FixedTransform, core bounds, rays, and planes. Each method writes fields in an explicit stable order. Changing that order or the authoritative fields is a hash and replay compatibility event.

WriteTransform hashes local position, local rotation, and local scale. Parent identity and derived world values are intentionally excluded.

See the migration guide when upgrading existing consumers or changing shared diagnostics and hash imports.

Exact simulation-time conversions

FixedChronicleTime bridges Fixed64 seconds and Chronicler.Timing.ChronicleDuration. Both have 32 fractional bits, so widening preserves every raw bit, including negative fractions. Narrowing succeeds only when the duration fits Fixed64; it never saturates or rounds.

Subtract timestamps before converting to Fixed64. This complete method measures a quarter second after 100 Julian years (365.25 days per year):

using Chronicler.Timing;
using FixedMathSharp;
using FixedMathSharp.Chronicler;

public static class TimingExample
{
    public static Fixed64 MeasureInterval()
    {
        var start = new ChronicleTimestamp(3_155_760_000, 0);
        var end = start + FixedChronicleTime.FromFixed64(Fixed64.FromRaw(0x40000000));
        return FixedChronicleTime.ToFixed64(end - start); // Exactly 0.25 seconds.
    }
}

A 100-year interval itself does not fit Fixed64. TryToFixed64 returns false and a zero output for an out-of-range duration; ToFixed64 throws OverflowException. Keep wide intervals as ChronicleDuration when narrowing is unnecessary. There is deliberately no direct timestamp conversion.

GetFrameCountForDuration(duration, stepDuration) counts complete steps at the supplied step size and returns a long, including results above int.MaxValue. Duration must be nonnegative and step duration positive; invalid arguments throw ArgumentOutOfRangeException. It divides the raw integers and floors the result: no reciprocal multiplication, saturation, historical frame lookup, or wait scheduling is involved. With a rounded 1/30-second step (143165577 raw units), one second contains 29 complete steps; 30 steps require 4294967310 raw units. Use the actual represented step, not an assumed exact decimal rate.

Chronicler owns clock advancement and wide time values; FixedMathSharp core remains independent of Chronicler's timing APIs. Hosts still own fixed-step execution, lifetime boundaries, and coordinated restore.

Learn more

FixedMathSharp.Chronicler is licensed under the MIT License.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FixedMathSharp.Chronicler:

Package Downloads
Gravitas

High-performance, engine-agnostic fixed-point physics for deterministic 2D, 3D, and mixed-dimension lockstep games and simulations.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.0.0 57 11/4/2026
7.1.0 184 8/23/2026
7.0.0 191 8/4/2026
6.0.0 146 6/30/2026