CultLib/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens d514efebba Make CultMath HLSL-shaped: writable components, bool-vector comparisons
HLSL is now CultMath's semantic authority where it defines one.

- float2/3/4, int2, double2/3, bool2 and quaternion are plain structs with
  public mutable fields instead of record structs. Indexers and swizzles
  (float2.yx; float3 xy xz yx yz zy xyz xzy yzx zyx; float4 xy xyz xyw yzx)
  have setters.
- ==, !=, <, >, <=, >= are component-wise and return bool2/3/4. Equals and
  GetHashCode stay value-based so vectors remain dictionary keys.
  quaternion is not an HLSL type and keeps a bool ==.
- Scalar/vector arithmetic and comparisons get explicit overloads on both
  sides instead of leaning on implicit splat.
- New types: bool3, bool4, int3, int4, float2x2, float3x3 (row-major like
  HLSL, _mRC fields, Rotate / RotateX/Y/Z / Euler with math.RotationOrder).
- New intrinsics: mul (matrix-vector both sides, matrix-matrix), any, all,
  select (HLSL argument order), log, vector pow/sqrt/sin/cos/acos/atan2,
  double min/max, int3/int4/bool3/bool4/float2x2/float3x3 constructor
  functions.
- simplex_noise is renamed snoise and gains the Ashima 3D variant; the HLSL
  mirror follows as cultmath_snoise(float2/float3).
- Random gains NextFloat3() and NextFloat3(float3 max) on the same draw order.

Tests pin snoise(float3), float3x3.Euler and float2x2.Rotate to
Unity.Mathematics reference values, and an HLSL-shaped source block compiles
under using static CultMath.math.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:29:59 +02:00
..
cultcache-py Refuse re-entrant Python cache mutations and adopt legacy-key globals on load 2026-09-14 12:27:55 +02:00
cultcache-rs Require an atomic push_all from every Rust backing store 2026-09-14 12:28:07 +02:00
cultcache-ts Delete the TypeScript re-entry guard; state the store-wait rule once 2026-09-14 12:43:46 +02:00
cultmath Make CultMath HLSL-shaped: writable components, bool-vector comparisons 2026-09-14 13:29:59 +02:00
cultmesh-browser Harden CultMesh route fallback and secure onboarding 2026-08-18 19:41:03 +02:00
cultmesh-kotlin Finish the sequence-domain split in Python and Kotlin 2026-09-04 00:40:05 +02:00
cultmesh-py Drop the license classifier setuptools now refuses 2026-09-10 13:55:46 +02:00
cultmesh-rs Give every cultcache-rs entry type one home store 2026-09-14 00:38:41 +02:00
cultmesh-ts Serialize TypeScript CultCache mutations and validate writes whole 2026-09-14 11:57:01 +02:00
cultnet-py Mark every Cult document [MessagePackObject] 2026-09-13 23:38:08 +02:00
cultnet-rs Give every cultcache-rs entry type one home store 2026-09-14 00:38:41 +02:00
cultnet-ts Give every cultcache-ts document type one home store 2026-09-14 00:37:31 +02:00