MPL-2.0 is file-level and the Phacelle port sat inside MIT files. phacelle and CultPhasor now live in math.Phacelle.cs and CultPhasor.cs, and cultmath_phacelle in CultMath.Phacelle.hlsl (included by CultMath.hlsl, both tracked copies), each with the MPL header and Johansen / Luke Mitchell attribution. math stays one partial class, so math.phacelle is called exactly as before. The GameCult.Math package declares MIT AND MPL-2.0 and packs THIRD-PARTY-NOTICES.md and the new include; the Unity LICENSE.md points at CultLib; build-unity-package.ps1 requires the new include. The random sweeps never met a cell whose box bound sits just under the 2.25 cut while its weight is still nonzero, so cuts of 2.245, 2.24 and 2.2 survived. Six hard-coded points (found by an offline search) sit next to such cells; the C# pruned-vs-unpruned test and the HLSL mirror test both use them, with a witness check that re-derives the property from the hash. Docs: the prune keeps about 45 of 64 cells (14 is the nonzero-weight count), the support radius is 1.49998 (d^2 = 2.24995), normalization's range and saturation, W = 0 only for adversarial hashes, and the support-edge gradient seam size. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1.6 KiB
CultMath for Unity
This is CultMath's Unity 2021.3-compatible Git-UPM surface. It contains the
precompiled CultMath.dll, portable symbols, the numeric
Shaders/CultMath.hlsl mirror (with its CultMath.Phacelle.hlsl include), and the CultMath.UnityBridge assembly.
CultMath.UnityBridge is the only C# source Unity compiles here. It holds the
UnityEngine conversions the engine-free core cannot declare: ToCultMath() on
Vector2/3/4, Vector2Int/3Int, Quaternion, and Color; ToUnity() on
float2/3/4, int2/3, and quaternion; ToColor() on float4. C# only
admits conversion operators on the source or target type, so these are
extension methods rather than implicit casts. Import CultMath.UnityBridge to
use them.
Unity does not compile CultMath's repository source tree. That source uses the
current C# language and remains owned by the normal .NET project. The package
imports only the tracked auto-referenced precompiled assembly, so consumers do
not need csc.rsp language overrides or an asmdef propagation shim.
Build and inspect the package from the repository root:
.\scripts\build-unity-package.ps1
The builder fresh-builds CultMath for netstandard2.1, verifies the tracked
DLL/PDB and stable Unity metadata, and stages an inspectable package under
artifacts/unity/org.gamecult.cultmath.
Consume the repository package with:
"org.gamecult.cultmath": "https://github.com/GameCult/CultLib.git?path=/packages/cultmath/unity/org.gamecult.cultmath"
Production consumers should pin that URL to a commit or release tag.