Merge CultMath 0.3.0 release (Asura 2a-ii-c)

snoise moves to the upstream kernel (breaking values, minor bump for 0.y),
smin_grad, cellular, snoise/fbm/ridged gradients, Phacelle, BoundedLeastSquares.
Unity package licence is MIT AND MPL-2.0. Soul holds: asura:verdict:cut-2a-ii-c.s3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-02 16:58:28 +02:00
commit 614fd44584
8 changed files with 50 additions and 9 deletions

View file

@ -37,5 +37,5 @@ gradient and the exact pruning are new here.
`src/CultMath/math.Phacelle.cs`, `src/CultMath/CultPhasor.cs`,
`shaders/CultMath.Phacelle.hlsl` and the Unity copy of that include. Each
carries the MPL-2.0 header and this attribution. The rest of CultMath is MIT,
so the `GameCult.Math` NuGet package declares `MIT AND MPL-2.0` and ships this
file. The Unity package as a whole is MPL-2.0.
so the `GameCult.Math` NuGet package and the `org.gamecult.cultmath` Unity
package both declare `MIT AND MPL-2.0` and ship this file.

View file

@ -10,7 +10,7 @@
<PackageId>GameCult.Math</PackageId>
<!-- MIT overall; math.Phacelle.cs and CultPhasor.cs (and the two Phacelle HLSL files) are MPL-2.0. -->
<PackageLicenseExpression>MIT AND MPL-2.0</PackageLicenseExpression>
<Version>0.2.4</Version>
<Version>0.3.0</Version>
<Description>Clean-room C# math shaped for HLSL-style renderer code.</Description>
<Authors>GameCult</Authors>
<PackageReadmeFile>README.md</PackageReadmeFile>

View file

@ -5,6 +5,38 @@ 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.
## [0.3.0]
### Breaking
- `math.snoise(float3)` and `math.snoise(float2)`, and their HLSL mirrors
`cultmath_snoise`, return different values. The kernel now follows
stegu/webgl-noise. For 3D only, the falloff `r^2` constant is 0.5 (was 0.6)
and the output scale is 105 (was 42). For 2D, the falloff constant (0.5) and
the output scale (130) are unchanged. In both, the shared permutation offset
is now +10 (was +1), which changes the values of both. This removes the value
discontinuities the 3D kernel had at simplex cell boundaries. Any content
seeded from `snoise` changes; regenerate it when you take this version.
### Added
- `math.smin_grad`: smooth minimum with gradient, for `float4` operands
carrying the gradient in `xyz` and the value in `w`.
- `math.cellular` and the `CultCellular` result struct: cellular (Worley)
noise returning the gradient and distance to the nearest feature points.
- `math.snoise_grad`, `math.fbm_grad` and `math.ridged_grad`: simplex noise,
fractal Brownian motion and ridged multifractal with analytic gradients,
returned as `float4` with the gradient in `xyz` and the value in `w`.
- `math.phacelle` and the `CultPhasor` result struct: Phacelle noise with
gradient. `math.Phacelle.cs`, `CultPhasor.cs` and
`Shaders/CultMath.Phacelle.hlsl` are MPL-2.0 (see
`THIRD-PARTY-NOTICES.md`).
- `BoundedLeastSquares`: an allocation-free, deterministic bounded
least-squares solver (`Solve`) with a status result and the input contract
documented on the type.
- The matching `cultmath_*` HLSL mirrors of the functions above in
`Shaders/CultMath.hlsl` and `Shaders/CultMath.Phacelle.hlsl`.
## [0.2.4]
### Added

View file

@ -1,8 +1,17 @@
# CultMath License
CultMath is licensed under the Mozilla Public License 2.0 (`MPL-2.0`).
CultMath is licensed under the MIT License (`MIT`), except for the Phacelle
files, which are licensed under the Mozilla Public License 2.0 (`MPL-2.0`):
The complete license text is available from the Mozilla Foundation at
- `Shaders/CultMath.Phacelle.hlsl`
- the Phacelle sources compiled into `Runtime/Plugins/CultMath.dll`
(`math.Phacelle.cs` and `CultPhasor.cs` in the GameCult/CultLib repository)
The package license expression is therefore `MIT AND MPL-2.0`, matching the
`GameCult.Math` NuGet package. MPL-2.0 is file-level: it applies to those files
and not to the rest of CultMath.
The MPL-2.0 text is available from the Mozilla Foundation at
<https://www.mozilla.org/MPL/2.0/>. Source and modification history for the
precompiled assembly in this package are available in the GameCult/CultLib
repository (`packages/cultmath`) at the corresponding package tag.

View file

@ -37,5 +37,5 @@ gradient and the exact pruning are new here.
`src/CultMath/math.Phacelle.cs`, `src/CultMath/CultPhasor.cs`,
`shaders/CultMath.Phacelle.hlsl` and the Unity copy of that include. Each
carries the MPL-2.0 header and this attribution. The rest of CultMath is MIT,
so the `GameCult.Math` NuGet package declares `MIT AND MPL-2.0` and ships this
file. The Unity package as a whole is MPL-2.0.
so the `GameCult.Math` NuGet package and the `org.gamecult.cultmath` Unity
package both declare `MIT AND MPL-2.0` and ship this file.

View file

@ -1,10 +1,10 @@
{
"name": "org.gamecult.cultmath",
"displayName": "CultMath",
"version": "0.2.4",
"version": "0.3.0",
"unity": "2021.3",
"description": "Precompiled CultMath numeric primitives and matching HLSL semantics for GameCult Unity runtimes.",
"license": "MPL-2.0",
"license": "MIT AND MPL-2.0",
"author": {
"name": "GameCult"
},