Every procedural system in REACT-ACE-2 MEGA shares the same ZeroBytes hashing foundation. All produce identical output for identical input — no Math.random(), no network, no database. The position IS the seed.
Given any world-space coordinate (x, y, z) and a salt value, the hash function posHash(x, y, z, salt) returns a deterministic 32-bit unsigned integer in O(1) time. Every game system derives its properties from chains of these hashes, creating an infinite, reproducible universe from a single seed.
All components released under Apache 2.0 license.
| System | Domain | Key Function | Repository |
|---|---|---|---|
| ZeroBytes | Position hashing foundation | posHash(x, y, z, salt) → uint32 | GitHub |
| Zero-Field | Coherent noise fields | coherent(x, y, z, salt, octaves) | GitHub |
| Zero-Graph | Bridge connectivity | pairHash(a, b, salt) symmetric | GitHub |
| Zero-Quad | Pair properties | Facade alignment, arch triggers | GitHub |
| Zero-Cubic | Triple-point hashing | tripleHash(a, b, c, salt) fully symmetric | GitHub |
| ZeroCover | Combat AI cover | LOS traversal + relocation | GitHub |
| ZeroQuest | Procedural missions | generateQuest(x, y, z) | GitHub |
| ZeroVoice | Speech synthesis | xxHash64 → voice derivation | GitHub |
| ZeroSounds | Procedural audio | Hash → waveform, envelope | GitHub |
| ZeroBump | Shader textures | GLSL Koch noise perturbation | GitHub |
| ZeroTree | Skill progression | FNV-1a → node types, stats | GitHub |
| ZeroExplosion | Visual effects | resolveExplosion(x, y, z) | GitHub |
| ZeroStructureMask | World editing | querySiteMask(cx, cy, cz) | GitHub |
| ZeroResponse | Procedural text | Template + pool selection via hash, O(1) | — |
| Tool | Description | Repository |
|---|---|---|
| TINS | README-driven AI code generation methodology | GitHub |
| CellShading | Headless NPR shading modes for R3F | GitHub |
| MusicManager | Adaptive music with Howler.js crossfading | GitHub |
| PolyForge | Low-poly ship designer with socket editor | GitHub |
Any property of any entity at any position can be computed in constant time from its coordinates alone.
The world requires zero persistent storage beyond player choices. The universe exists implicitly in the hash functions.
Same inputs always produce same outputs. No Math.random(), no timestamps, no network. Reproducible on any machine.
Nearby positions produce related but distinct values. Biomes, explosion intensities, and voice timbres vary smoothly across space.
Complex properties derive from simple seeds through chains of hash operations: position → region → cell → face → vertex.
How an explosion is resolved from world coordinates:
| Step | Operation | Output |
|---|---|---|
| 1 | posHash(wx, wy, wz, SALT_SIZE) | Size multiplier (0.8–1.2) |
| 2 | posHash(wx, wy, wz, SALT_COLOR) | Core + fire colour selection |
| 3 | posHash(debrisSeed, i, 0, 0) per piece | Debris scale X/Y/Z |
| 4 | posHash(wx, i, wz, SALT_ARC) per piece | Arc angle, elevation, speed |
| 5 | posHash(as1, i, 3..5, 0) per piece | Rotation speeds X/Y/Z |
All 5 steps execute in microseconds. The same world position always produces the same explosion with the same debris trajectories.
The fundamental world seed is 0x4B4F4348 ("KOCH" in ASCII). The ZeroTree seed is 0x5B455254 ("ZERO"). Both are fixed constants — all players see the same world and the same skill tree.