From 1330362235cc47cc8286af1d3efd8192cdc8428f Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 17 Oct 2026 19:28:25 +0200 Subject: [PATCH] CultPhasor rename: README, design note and both changelogs cultmath-unity [Unreleased] and cultlib [Unreleased] carry the Breaking entries; no version bump, no tag. Co-Authored-By: Claude Opus 5.5 --- packages/cultmath/docs/design.md | 2 +- .../cultmath/unity/org.gamecult.cultmath/CHANGELOG.md | 9 +++++++++ src/GameCult.Caching.MessagePack/README.md | 2 +- unity/org.gamecult.cultlib/CHANGELOG.md | 4 ++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/cultmath/docs/design.md b/packages/cultmath/docs/design.md index 62c6ed00..3b63f4d2 100644 --- a/packages/cultmath/docs/design.md +++ b/packages/cultmath/docs/design.md @@ -429,7 +429,7 @@ together, laid out as `float4(gradient.xyz, value.w)`, with no value-only twin - `phacelle(float3 p, float3 side, float offset, float normalization)` is Rune Skovbo Johansen's Phacelle noise ("phase + cell": a stripe pattern built by blending one cosine/sine wave per jittered cell), generalised to 3D cells. It - returns `CultPhasor { cos, sin }`, each `(∇, value)`. `side` is the stripe + returns `CultPhasor { cosine, sine }`, each `(∇, value)`. `side` is the stripe wave vector, whose length is 2π times the stripe frequency; in 3D the perpendicular to the flow is not unique, so the caller chooses it (on a unit sphere, `cross(p̂, flow)`). `offset` is the phase in cycles. It visits 4×4×4 diff --git a/packages/cultmath/unity/org.gamecult.cultmath/CHANGELOG.md b/packages/cultmath/unity/org.gamecult.cultmath/CHANGELOG.md index 21511bc8..d8b27dc3 100644 --- a/packages/cultmath/unity/org.gamecult.cultmath/CHANGELOG.md +++ b/packages/cultmath/unity/org.gamecult.cultmath/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this package are documented in this file. Earlier releases (0.2.0-0.2.3) predate this package's changelog and are not backfilled here; see `docs/semver-policy.md` for why. +## [Unreleased] + +### Breaking + +- `CultPhasor.cos` and `.sin` are now `.cosine` and `.sine` in C#, HLSL and GLSL, + constructor parameters included, because SPIRV-Cross renames members that match + GLSL builtins. This is a minor bump on 0.y.z, so the next cultmath-unity release + is 0.5.0. + ## [0.4.1] ### Fixed diff --git a/src/GameCult.Caching.MessagePack/README.md b/src/GameCult.Caching.MessagePack/README.md index a03a67c4..dfc7bff6 100644 --- a/src/GameCult.Caching.MessagePack/README.md +++ b/src/GameCult.Caching.MessagePack/README.md @@ -101,7 +101,7 @@ broken graph whole (an `ExprGraphException` naming the rule), so a consumer | `float2x2`, `float3x3` | array of row vectors (row-major) | array of row objects | | `rect` | `[min, max]` of `float2` | `{"min":{..},"max":{..}}` | | `CultCellular` | `[nearest, edge, id]` | `{"nearest":{..},"edge":{..},"id":..}` | -| `CultPhasor` | `[cos, sin]` of `float4` | `{"cos":{..},"sin":{..}}` | +| `CultPhasor` | `[cosine, sine]` of `float4` | `{"cosine":{..},"sine":{..}}` (reads legacy `cos`/`sin`) | | `CultSiteCells` | `[nearest, second, nearestSite, secondSite]` | `{"nearest":{..},"second":{..},"nearestSite":..,"secondSite":..}` | Floats are MessagePack float32 (`0xCA`), doubles float64 (`0xCB`), integers the diff --git a/unity/org.gamecult.cultlib/CHANGELOG.md b/unity/org.gamecult.cultlib/CHANGELOG.md index 9d54e996..7b0093d2 100644 --- a/unity/org.gamecult.cultlib/CHANGELOG.md +++ b/unity/org.gamecult.cultlib/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to this package are documented in this file. ### Breaking +- `CultMathJson` writes `CultPhasor` as `{"cosine":..,"sine":..}` and still reads + the old `cos`/`sin` keys. A reader from before this change skips the new keys + and decodes zeros, so upgrade readers before writers. MessagePack bytes are + unchanged. - CultCache refuses an unknown union arm on read and an unnamed union subtype on write. A payload whose arm key the union does not declare used to decode to `null` (and the next save wrote the loss back); a value whose type the union