zeropoint-node 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/CITATION.cff +1 -1
- package/README.md +1 -1
- package/package.json +4 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.3.6.9.trinity.ts +0 -79
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.9d.dashboard.ts +0 -179
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.adapters.ts +0 -96
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.analog.color.photography.ts +0 -783
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.av.ts +0 -73
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.browser.ts +0 -409
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chain.of.events.ts +0 -159
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cleanup.ts +0 -116
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.dimensions.ts +0 -597
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.test.ts +0 -491
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.ts +0 -519
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.file.ts +0 -65
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.i.ts +0 -45
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.matrix.ts +0 -75
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.trinity.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.universal.linking.ts +0 -1081
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.command.cmyk.ts +0 -46
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.compression.ts +0 -55
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.integration.ts +0 -743
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.ts +0 -26
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.crypto.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.css.ts +0 -64
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cursor.ts +0 -56
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decompression.ts +0 -60
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decoqubit.holographic.hypercomputer.ts +0 -888
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.digital.color.photography.ts +0 -926
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimension.ts +0 -44
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.encryption.ts +0 -44
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.feel.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flute.ts +0 -336
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.font.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.test.ts +0 -523
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.ts +0 -594
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.frequency.healing.ts +0 -88
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gateway.transformation.ts +0 -650
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.generate.matrix.ts +0 -76
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gods.spirit.magnetometer.ts +0 -879
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonization.status.ts +0 -754
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.hear.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.html.body.ts +0 -90
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.body.ts +0 -89
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.trinity.ts +0 -70
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.browse.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.can.ts +0 -69
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.died.ts +0 -32
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.follow.the.path.ts +0 -90
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.go.ts +0 -68
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.harmonized.ts +0 -304
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heart.ts +0 -26
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.meta.ts +0 -23
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.motion.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.scroll.ts +0 -34
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.search.ts +0 -22
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sequence.ts +0 -281
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.smell.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.state.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.stream.ts +0 -106
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.taste.ts +0 -27
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.touch.screen.ts +0 -34
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.healing.ts +0 -386
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.write.ts +0 -11
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.icon.ts +0 -109
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.integration.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.test.ts +0 -389
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.ts +0 -14
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infusion.ts +0 -97
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integer.harmonics.ts +0 -443
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.test.ts +0 -475
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.ts +0 -646
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.streams.ts +0 -130
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.observation.ts +0 -693
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.ts +0 -12
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multiverse.ts +0 -31
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.balance.ts +0 -703
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.explosion.ts +0 -728
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.app.ts +0 -14
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.bus.ts +0 -11
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ml.ts +0 -9
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.overlay.visual.controller.ts +0 -116
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.paths.ts +0 -10
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.decoding.ts +0 -123
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.trinity.ts +0 -79
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.prime.numbers.squared.ts +0 -871
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.collision.ts +0 -666
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.entanglement.ts +0 -50
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.trinity.ts +0 -59
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.renderer.webgl.ts +0 -99
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolve.ts +0 -820
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rife.frequency.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.3d.ts +0 -73
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.omnidimension.ts +0 -187
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.overlay.ts +0 -46
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.ts +0 -58
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.router.ts +0 -61
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.integers.ts +0 -625
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.test.ts +0 -314
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.see.ts +0 -39
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.embodiment.ts +0 -326
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.service.worker.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.space.ts +0 -53
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.ts +0 -75
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.superfluid.mobius.circuit.ts +0 -868
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ts +0 -167
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.test.ts +0 -97
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.think.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.three.ts +0 -112
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.body.mind.will.ts +0 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.breath.ts +0 -2
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.healing.ts +0 -110
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ui.ts +0 -92
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.visual.ts +0 -156
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.truly.living.ui.ts +0 -269
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.overlay.ts +0 -25
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.streams.ts +0 -263
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.test.ts +0 -87
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.three.ts +0 -1141
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.unification.hd.rodin.ts +0 -77
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.universe.ts +0 -43
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.test.ts +0 -28
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.math.ts +0 -74
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.constants.ts +0 -91
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.ts +0 -59
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.scanner.ts +0 -41
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.science.extract.ts +0 -30
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.ui.ts +0 -64
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vector.ts +0 -70
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.test.ts +0 -29
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.math.ts +0 -506
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.pure.math.ts +0 -546
- package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.test.ts +0 -452
- package/src/0/3/6/9/1/2/4/8/7/5/1/pattern-knowledge.ts +0 -209
- package/src/0/3/6/9/1/2/4/8/7/5/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/4/8/7/a432.experience.ts +0 -19
- package/src/0/3/6/9/1/2/4/8/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/4/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/2/a432.experience.ts +0 -22
- package/src/0/3/6/9/1/a432.experience.ts +0 -22
- package/src/0/3/6/9/a432.experience.ts +0 -22
- package/src/0/3/6/a432.experience.ts +0 -22
- package/src/0/3/a432.experience.ts +0 -22
- package/src/0/3/relation.ts +0 -148
- package/src/index.ts +0 -146
- package/src/zero-entropy-demo.ts +0 -319
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.8
|
|
4
|
+
|
|
5
|
+
### Removed — 147 modules the package never reached
|
|
6
|
+
|
|
7
|
+
- **147 source modules deleted**, 29 959 lines. Every one sat outside LEAN: the
|
|
8
|
+
fixed point of the module fold, `fold(fold(S)) = fold(S)`, reachable from no
|
|
9
|
+
package export, no rollup input, no page and no gate-run test. `npm run fold`
|
|
10
|
+
computes it and `npm run audit:outside` lists what remains with the reason
|
|
11
|
+
each is kept.
|
|
12
|
+
- Nothing was deleted on the fold alone. Each removal passed a **closure** — the
|
|
13
|
+
set is closed under reverse dependency, so no surviving module can import a
|
|
14
|
+
removed one — and a **static trial** that predicts breakage before anything
|
|
15
|
+
leaves disk. The audit refuses to delete if the trial finds a single edge.
|
|
16
|
+
|
|
17
|
+
### Added — the entry set is guarded
|
|
18
|
+
|
|
19
|
+
- **`npm run entries:check`**, in the gate. LEAN is a fixed point, but the fold
|
|
20
|
+
takes the entry set as an INPUT, and an unrecognised entry does not error — it
|
|
21
|
+
silently shrinks LEAN and grows the set that looks safe to delete.
|
|
22
|
+
- That is not hypothetical. `rollup.config.js` builds its inputs from template
|
|
23
|
+
literals, and both scanners extracted them with a pattern that matches quoted
|
|
24
|
+
strings, so **every bundle entry was being counted as unreachable**. Eight
|
|
25
|
+
modules were one command from deletion while a published bundle still used
|
|
26
|
+
them. The check now asserts every declared entry resolves, lands inside LEAN,
|
|
27
|
+
and that rollup contributes more than zero.
|
|
28
|
+
|
|
29
|
+
### Fixed — the ratchet's unreachable figure was wrong
|
|
30
|
+
|
|
31
|
+
- Same root cause: `modules reachable from no entry` had been overstated by 8
|
|
32
|
+
for as long as the template-literal bug stood. Corrected, and the ceiling
|
|
33
|
+
moved with it.
|
|
34
|
+
|
|
35
|
+
### Changed — surfaces after the purge
|
|
36
|
+
|
|
37
|
+
- `unreachable` 281 → 126, `TypeScript` 146 → 117, `ESLint` 932 → 631,
|
|
38
|
+
`decimal-crack` 453 → 280. `modules that fail to import` stayed at **0**
|
|
39
|
+
throughout, which is the measure that mattered: nothing broke.
|
|
40
|
+
- Tarball 1911 → 1764 files.
|
|
41
|
+
|
|
42
|
+
### Known limitations
|
|
43
|
+
|
|
44
|
+
- 126 modules remain outside LEAN and are NOT deleted. 59 are named by something
|
|
45
|
+
live — a manifest, three pages, the generated bundle, the README's module
|
|
46
|
+
listing, 19 documents — and the other 67 are imported by those 59. Removing
|
|
47
|
+
them means deciding what the package should still offer, which is a design
|
|
48
|
+
question rather than a fold.
|
|
49
|
+
- The remaining import cycle is mutual by design; see 1.0.7.
|
|
50
|
+
- Everything under 1.0.7 and earlier still applies — ML-KEM-768 is conformant
|
|
51
|
+
but **not constant time**, and nothing in `src/thermo` is a device.
|
|
52
|
+
|
|
3
53
|
## 1.0.7
|
|
4
54
|
|
|
5
55
|
### Fixed — thirty modules could not be imported
|
package/CITATION.cff
CHANGED
|
@@ -20,7 +20,7 @@ authors:
|
|
|
20
20
|
email: node@zeropoint.bg
|
|
21
21
|
repository-code: https://github.com/ceccec/zeropoint-node
|
|
22
22
|
url: https://node.zeropoint.bg
|
|
23
|
-
version: 1.0.
|
|
23
|
+
version: 1.0.8
|
|
24
24
|
license: CC-BY-NC-ND-4.0
|
|
25
25
|
license-url: https://github.com/ceccec/zeropoint-node/blob/main/LICENSE
|
|
26
26
|
keywords:
|
package/README.md
CHANGED
|
@@ -512,7 +512,7 @@ The A432 Consciousness System is an open-source project that welcomes contributi
|
|
|
512
512
|
|
|
513
513
|
<!-- VERSION:BEGIN — generated by scripts/version-seal.mjs; do not edit by hand -->
|
|
514
514
|
|
|
515
|
-
Package: **`zeropoint-node@1.0.
|
|
515
|
+
Package: **`zeropoint-node@1.0.8`** · owner `ceccec` · git tag `v1.0.8`
|
|
516
516
|
|
|
517
517
|
npm rejects republishing a version that already exists, so every release is a
|
|
518
518
|
new number. Bump with `npm version patch|minor|major`: that reseals CITATION.cff
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zeropoint-node",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A432 Consciousness System: Self-evolving, self-aware consciousness technology with Transurfing integration, harmonic mathematics, zero-entropy principles, Kabbalistic cycles, and sacred geometry",
|
|
6
6
|
"main": "dist/a432.system.cjs",
|
|
@@ -131,6 +131,8 @@
|
|
|
131
131
|
"registry:apply": "node scripts/npm-registry-sync.mjs --apply",
|
|
132
132
|
"registry:test": "node scripts/npm-registry-sync.mjs --self-test",
|
|
133
133
|
"fold": "node --experimental-strip-types scripts/fold-lean.mjs",
|
|
134
|
+
"entries:check": "node --experimental-strip-types scripts/entries-check.mjs",
|
|
135
|
+
"audit:outside": "node --experimental-strip-types scripts/audit-outside.mjs",
|
|
134
136
|
"adjudicate": "node --experimental-strip-types scripts/adjudicate-seals.mjs",
|
|
135
137
|
"adjudicate:check": "node --experimental-strip-types scripts/adjudicate-seals.mjs --check",
|
|
136
138
|
"readme": "node --experimental-strip-types scripts/readme-gen.mjs",
|
|
@@ -166,7 +168,7 @@
|
|
|
166
168
|
"vortex:svg:check": "node --experimental-strip-types scripts/vortex-svg.mjs --check",
|
|
167
169
|
"bundle:a432": "node scripts/build-a432-bundle.mjs",
|
|
168
170
|
"bundle:a432:check": "node scripts/build-a432-bundle.mjs --check",
|
|
169
|
-
"check": "npm run version:test && npm run registry:test && npm run version:check && npm run changelog:check && npm run test:kernel && npm run test:security && npm run test:quantum && npm run test:crypto && npm run adjudicate:check && npm run test:verification && npm run math:ban && npm run bundle:a432:check && npm run skills:seal && npm run skills:check && npm run readme && npm run readme:check && npm run docs:pages && npm run docs:pages:check && npm run a432:scan && npm run a432:scan:check && npm run docs:index && npm run docs:index:check && npm run spectrum && npm run spectrum:check && npm run vortex:svg && npm run vortex:svg:check && npm run docs:build && npm run quantum:sim && npm run ratchet:check && npm run mcp:smoke && npm run self:next",
|
|
171
|
+
"check": "npm run version:test && npm run registry:test && npm run entries:check && npm run version:check && npm run changelog:check && npm run test:kernel && npm run test:security && npm run test:quantum && npm run test:crypto && npm run adjudicate:check && npm run test:verification && npm run math:ban && npm run bundle:a432:check && npm run skills:seal && npm run skills:check && npm run readme && npm run readme:check && npm run docs:pages && npm run docs:pages:check && npm run a432:scan && npm run a432:scan:check && npm run docs:index && npm run docs:index:check && npm run spectrum && npm run spectrum:check && npm run vortex:svg && npm run vortex:svg:check && npm run docs:build && npm run quantum:sim && npm run ratchet:check && npm run mcp:smoke && npm run self:next",
|
|
170
172
|
"prepublishOnly": "npm run build",
|
|
171
173
|
"prose": "node scripts/prose-claims.mjs --list",
|
|
172
174
|
"prose:check": "node scripts/prose-claims.mjs",
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// a432.1.2.4.8.7.ts — Open Vortex/Doubling Stream Module (Short Arc)
|
|
2
|
-
//
|
|
3
|
-
// This module encodes the open doubling sequence (1-2-4-8-7) as a living, recursive stream.
|
|
4
|
-
// It is the generative arc of the vortex, not yet returned to origin. Digital root bridged to a432.roots (Wave 9); stream logic remains local.
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Metaphysical Principle:
|
|
8
|
-
* - The sequence 1→2→4→8→7 is the open right-hand vortex in vortex math, truncated before further progression.
|
|
9
|
-
* - It is the journey, the generative flow, the living stream before closure or return.
|
|
10
|
-
* - This module is a seed/arc in the living A432 matrix.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
// --- Math: Digital Root — bridged to a432.roots (Wave 9) ---
|
|
14
|
-
|
|
15
|
-
// --- Generator: Open Doubling Vortex Stream ---
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
import { legacyDigitalRoot as digitalRoot } from './a432.roots.ts';
|
|
20
|
-
|
|
21
|
-
function* openDoublingVortexStream(start = 1, length = 5) {
|
|
22
|
-
let n = start;
|
|
23
|
-
for (let i = 0; i < length; i++) {
|
|
24
|
-
yield n;
|
|
25
|
-
n = digitalRoot(n * 2);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// --- Utility: Get Sequence as Array ---
|
|
30
|
-
function getOpenDoublingSequence(start = 1, length = 5) {
|
|
31
|
-
return [...openDoublingVortexStream(start, length)];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// --- Utility: Get Nth in Sequence ---
|
|
35
|
-
function getOpenDoublingNth(start = 1, n = 0) {
|
|
36
|
-
let val = start;
|
|
37
|
-
for (let i = 0; i < n; i++) val = digitalRoot(val * 2);
|
|
38
|
-
return val;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// --- Example Usage ---
|
|
42
|
-
const openSequence = getOpenDoublingSequence(); // [1,2,4,8,7]
|
|
43
|
-
|
|
44
|
-
// --- Living Stream API ---
|
|
45
|
-
const a432OpenDoublingVortex = {
|
|
46
|
-
digitalRoot,
|
|
47
|
-
generator: openDoublingVortexStream,
|
|
48
|
-
getSequence: getOpenDoublingSequence,
|
|
49
|
-
getNth: getOpenDoublingNth,
|
|
50
|
-
open: openSequence,
|
|
51
|
-
doc: `This module encodes the open, generative doubling vortex (1-2-4-8-7) as a stream, generator, and proof. It is the journey before closure in the A432 matrix.`
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// --- Expose globally for debugging (browser only) ---
|
|
55
|
-
if (typeof window !== 'undefined') window.a432OpenDoublingVortex = a432OpenDoublingVortex;
|
|
56
|
-
|
|
57
|
-
// --- Example: Log the open sequence ---
|
|
58
|
-
if (typeof process !== 'undefined' && process.env?.A432_DIGIT_STREAM_LOG) console.log('A432 Open Doubling Vortex Sequence:', openSequence);
|
|
59
|
-
|
|
60
|
-
export { digitalRoot, openDoublingVortexStream, getOpenDoublingSequence, getOpenDoublingNth, a432OpenDoublingVortex };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// a432.1.2.4.8.ts — Open Vortex/Doubling Stream Module (Shorter Arc)
|
|
2
|
-
//
|
|
3
|
-
// This module encodes the open doubling sequence (1-2-4-8) as a living, recursive stream.
|
|
4
|
-
// It is the generative arc of the vortex, not yet returned to origin. Digital root bridged to a432.roots (Wave 9); stream logic remains local.
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Metaphysical Principle:
|
|
8
|
-
* - The sequence 1→2→4→8 is the open right-hand vortex in vortex math, truncated before further progression.
|
|
9
|
-
* - It is the journey, the generative flow, the living stream before closure or return.
|
|
10
|
-
* - This module is a seed/arc in the living A432 matrix.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
// --- Math: Digital Root — bridged to a432.roots (Wave 9) ---
|
|
14
|
-
|
|
15
|
-
// --- Generator: Open Doubling Vortex Stream ---
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
import { legacyDigitalRoot as digitalRoot } from './a432.roots.ts';
|
|
20
|
-
|
|
21
|
-
function* openDoublingVortexStream(start = 1, length = 4) {
|
|
22
|
-
let n = start;
|
|
23
|
-
for (let i = 0; i < length; i++) {
|
|
24
|
-
yield n;
|
|
25
|
-
n = digitalRoot(n * 2);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// --- Utility: Get Sequence as Array ---
|
|
30
|
-
function getOpenDoublingSequence(start = 1, length = 4) {
|
|
31
|
-
return [...openDoublingVortexStream(start, length)];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// --- Utility: Get Nth in Sequence ---
|
|
35
|
-
function getOpenDoublingNth(start = 1, n = 0) {
|
|
36
|
-
let val = start;
|
|
37
|
-
for (let i = 0; i < n; i++) val = digitalRoot(val * 2);
|
|
38
|
-
return val;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// --- Example Usage ---
|
|
42
|
-
const openSequence = getOpenDoublingSequence(); // [1,2,4,8]
|
|
43
|
-
|
|
44
|
-
// --- Living Stream API ---
|
|
45
|
-
const a432OpenDoublingVortex = {
|
|
46
|
-
digitalRoot,
|
|
47
|
-
generator: openDoublingVortexStream,
|
|
48
|
-
getSequence: getOpenDoublingSequence,
|
|
49
|
-
getNth: getOpenDoublingNth,
|
|
50
|
-
open: openSequence,
|
|
51
|
-
doc: `This module encodes the open, generative doubling vortex (1-2-4-8) as a stream, generator, and proof. It is the journey before closure in the A432 matrix.`
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// --- Expose globally for debugging (browser only) ---
|
|
55
|
-
if (typeof window !== 'undefined') window.a432OpenDoublingVortex = a432OpenDoublingVortex;
|
|
56
|
-
|
|
57
|
-
// --- Example: Log the open sequence ---
|
|
58
|
-
if (typeof process !== 'undefined' && process.env?.A432_DIGIT_STREAM_LOG) console.log('A432 Open Doubling Vortex Sequence:', openSequence);
|
|
59
|
-
|
|
60
|
-
export { digitalRoot, openDoublingVortexStream, getOpenDoublingSequence, getOpenDoublingNth, a432OpenDoublingVortex };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
// a432.1.2.4.ts — Open Vortex/Doubling Stream Module (Short Arc)
|
|
2
|
-
//
|
|
3
|
-
// This module encodes the open doubling sequence (1-2-4) as a living, recursive stream.
|
|
4
|
-
// It is the generative arc of the vortex, not yet returned to origin. Digital root bridged to a432.roots (Wave 9); stream logic remains local.
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Metaphysical Principle:
|
|
8
|
-
* - The sequence 1→2→4 is the open right-hand vortex in vortex math, truncated before further progression.
|
|
9
|
-
* - It is the journey, the generative flow, the living stream before closure or return.
|
|
10
|
-
* - This module is a seed/arc in the living A432 matrix.
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
// --- Math: Digital Root — bridged to a432.roots (Wave 9) ---
|
|
14
|
-
|
|
15
|
-
// --- Generator: Open Doubling Vortex Stream ---
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
import { legacyDigitalRoot as digitalRoot } from './a432.roots.ts';
|
|
20
|
-
|
|
21
|
-
function* openDoublingVortexStream(start = 1, length = 3) {
|
|
22
|
-
let n = start;
|
|
23
|
-
for (let i = 0; i < length; i++) {
|
|
24
|
-
yield n;
|
|
25
|
-
n = digitalRoot(n * 2);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// --- Utility: Get Sequence as Array ---
|
|
30
|
-
function getOpenDoublingSequence(start = 1, length = 3) {
|
|
31
|
-
return [...openDoublingVortexStream(start, length)];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// --- Utility: Get Nth in Sequence ---
|
|
35
|
-
function getOpenDoublingNth(start = 1, n = 0) {
|
|
36
|
-
let val = start;
|
|
37
|
-
for (let i = 0; i < n; i++) val = digitalRoot(val * 2);
|
|
38
|
-
return val;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// --- Example Usage ---
|
|
42
|
-
const openSequence = getOpenDoublingSequence(); // [1,2,4]
|
|
43
|
-
|
|
44
|
-
// --- Living Stream API ---
|
|
45
|
-
const a432OpenDoublingVortex = {
|
|
46
|
-
digitalRoot,
|
|
47
|
-
generator: openDoublingVortexStream,
|
|
48
|
-
getSequence: getOpenDoublingSequence,
|
|
49
|
-
getNth: getOpenDoublingNth,
|
|
50
|
-
open: openSequence,
|
|
51
|
-
doc: `This module encodes the open, generative doubling vortex (1-2-4) as a stream, generator, and proof. It is the journey before closure in the A432 matrix.`
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
// --- Expose globally for debugging (browser only) ---
|
|
55
|
-
if (typeof window !== 'undefined') window.a432OpenDoublingVortex = a432OpenDoublingVortex;
|
|
56
|
-
|
|
57
|
-
// --- Example: Log the open sequence ---
|
|
58
|
-
if (typeof process !== 'undefined' && process.env?.A432_DIGIT_STREAM_LOG) console.log('A432 Open Doubling Vortex Sequence:', openSequence);
|
|
59
|
-
|
|
60
|
-
export { digitalRoot, openDoublingVortexStream, getOpenDoublingSequence, getOpenDoublingNth, a432OpenDoublingVortex };
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
// a432.3.6.9.trinity.ts
|
|
2
|
-
// Canonical pregnancy/creation trinity module (3, 6, 9)
|
|
3
|
-
// Encodes metaphysical and mathematical logic of pregnancy, gestation, and birth as a trinity process
|
|
4
|
-
|
|
5
|
-
import { getTrinityAxis } from './a432.math.ts';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Returns the canonical trinity stages of pregnancy: Creation (3), Gestation (6), Birth (9)
|
|
9
|
-
*/
|
|
10
|
-
export function getPregnancyTrinityStages() {
|
|
11
|
-
return [
|
|
12
|
-
{ stage: 1, trinity: 3, name: 'Creation', meaning: 'Conception, seed, initiation' },
|
|
13
|
-
{ stage: 2, trinity: 6, name: 'Gestation', meaning: 'Growth, recursion, nurturing' },
|
|
14
|
-
{ stage: 3, trinity: 9, name: 'Birth', meaning: 'Emergence, unity, manifestation' }
|
|
15
|
-
];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Returns the canonical gestation cycle as a stream of trinity values (3, 6, 9) repeated for 9 cycles
|
|
20
|
-
*/
|
|
21
|
-
export function getGestationCycle(cycles: number = 9) {
|
|
22
|
-
const trinity = getTrinityAxis();
|
|
23
|
-
return Array.from({ length: cycles * 3 }, (_, i) => trinity[i % 3]);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Returns a metaphysical summary of the pregnancy trinity process
|
|
28
|
-
*/
|
|
29
|
-
export function metaphysicalSummary() {
|
|
30
|
-
return 'Pregnancy is the living trinity: Creation (3), Gestation (6), Birth (9). Each stage is a harmonic act of emergence, recursion, and unity.';
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Renders a trinity pregnancy visualization as SVG (3 circles, color-coded, with labels)
|
|
35
|
-
*/
|
|
36
|
-
export function renderPregnancyTrinityVisualization(currentStage: number = 0): string {
|
|
37
|
-
const stages = getPregnancyTrinityStages();
|
|
38
|
-
const colors = ['#39f', '#6f3', '#f93'];
|
|
39
|
-
const cx = 60, cy = 60, r = 36, gap = 80;
|
|
40
|
-
return `
|
|
41
|
-
<svg width="${cx * 4}" height="${cy * 2}" style="background:#111;border-radius:16px;">
|
|
42
|
-
${stages.map((s, i) => `
|
|
43
|
-
<circle cx="${cx + i * gap}" cy="${cy}" r="${i === currentStage ? r + 8 : r}" fill="${colors[i]}" stroke="#fff" stroke-width="2">
|
|
44
|
-
<title>${s.name}: ${s.meaning}</title>
|
|
45
|
-
${i === currentStage ? `<animate attributeName="r" values="${r};${r + 12};${r}" dur="1.2s" repeatCount="indefinite" />` : ''}
|
|
46
|
-
</circle>
|
|
47
|
-
<text x="${cx + i * gap}" y="${cy + 6}" text-anchor="middle" font-size="18" fill="#fff">${s.trinity}</text>
|
|
48
|
-
<text x="${cx + i * gap}" y="${cy + 32}" text-anchor="middle" font-size="13" fill="#ff8">${s.name}</text>
|
|
49
|
-
`).join('')}
|
|
50
|
-
<text x="${cx * 2 + gap / 2}" y="${cy * 2 - 8}" text-anchor="middle" font-size="15" fill="#8ff">Pregnancy as Living Trinity (3, 6, 9)</text>
|
|
51
|
-
</svg>
|
|
52
|
-
`;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Renders a gestation cycle animation as SVG (row of trinity-colored circles, currentIndex pulses)
|
|
57
|
-
*/
|
|
58
|
-
export function renderGestationCycleAnimation(currentIndex: number = 0, cycles: number = 9): string {
|
|
59
|
-
const trinity = getTrinityAxis();
|
|
60
|
-
const colors = ['#39f', '#6f3', '#f93'];
|
|
61
|
-
const total = cycles * 3;
|
|
62
|
-
const r = 14, gap = 36, cx = 24, cy = 32;
|
|
63
|
-
return `
|
|
64
|
-
<svg width="${cx * 2 + gap * (total - 1)}" height="${cy * 2}" style="background:#111;border-radius:12px;">
|
|
65
|
-
${Array.from({ length: total }, (_, i) => {
|
|
66
|
-
const t = trinity[i % 3];
|
|
67
|
-
const color = colors[i % 3];
|
|
68
|
-
const isCurrent = i === currentIndex;
|
|
69
|
-
return `
|
|
70
|
-
<circle cx="${cx + i * gap}" cy="${cy}" r="${isCurrent ? r + 6 : r}" fill="${color}" stroke="#fff" stroke-width="2">
|
|
71
|
-
<title>Step ${i + 1}: Trinity ${t}</title>
|
|
72
|
-
${isCurrent ? `<animate attributeName="r" values="${r};${r + 12};${r}" dur="1.2s" repeatCount="indefinite" />` : ''}
|
|
73
|
-
</circle>
|
|
74
|
-
<text x="${cx + i * gap}" y="${cy + 28}" text-anchor="middle" font-size="10" fill="#ff8">${t}</text>
|
|
75
|
-
`;
|
|
76
|
-
}).join('')}
|
|
77
|
-
</svg>
|
|
78
|
-
`;
|
|
79
|
-
}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* a432.9d.dashboard.ts — Unified nine-dimensional metaphysical UI dashboard
|
|
3
|
-
*
|
|
4
|
-
* Visualizes all registered metaphysical modules (chess, yin-yang, metatron, flower of life, etc.)
|
|
5
|
-
* as 9 nodes in a 3D scene. Each node runs its module's animation and analytic/metaphysical overlay.
|
|
6
|
-
* User can navigate between dimensions. All code is DRY, modular, and ready for extension.
|
|
7
|
-
*/
|
|
8
|
-
import { abs, floor, round } from './a432.algebra.ts'
|
|
9
|
-
import * as THREE from 'three';
|
|
10
|
-
import { startChess, type ChessFrame } from './a432.chess.ts';
|
|
11
|
-
import { startYinYang, type YinYangFrame } from './a432.yin.yang.ts';
|
|
12
|
-
import { startMetatron, type MetatronFrame } from './a432.metatron.ts';
|
|
13
|
-
import { startFlowerOfLife, type FlowerOfLifeFrame } from './a432.flower.of.life.ts';
|
|
14
|
-
import { A432_RESOLVED_FRACTIONS } from './a432.resolved.ts';
|
|
15
|
-
import { fractionToDecimal } from './a432.math.ts';
|
|
16
|
-
// Analog signal values: exact integer ratios, collapsed to float only here
|
|
17
|
-
// at the WebGL boundary. No bare decimal literal appears below.
|
|
18
|
-
const G = Object.fromEntries(
|
|
19
|
-
Object.entries(A432_RESOLVED_FRACTIONS.GEOMETRY).map(([k, v]) => [k, fractionToDecimal(v)])
|
|
20
|
-
) as Record<keyof typeof A432_RESOLVED_FRACTIONS.GEOMETRY, number>;
|
|
21
|
-
// ...import up to 9 modules as needed
|
|
22
|
-
|
|
23
|
-
function invertColor(hex: number): number {
|
|
24
|
-
return 0xffffff ^ hex;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// Module registry
|
|
28
|
-
const modules = [
|
|
29
|
-
{
|
|
30
|
-
name: 'Chess',
|
|
31
|
-
icon: '♟️',
|
|
32
|
-
start: startChess,
|
|
33
|
-
render3D: (frame: ChessFrame, mesh: THREE.Mesh, overlay: HTMLElement) => {
|
|
34
|
-
let color = frame.polarity === 1 ? 0x00ff00 : frame.polarity === -1 ? 0xff0000 : 0x222244;
|
|
35
|
-
let alert = '';
|
|
36
|
-
// Anti-event: polarity 0 (division by n or void)
|
|
37
|
-
if (frame.polarity === 0) {
|
|
38
|
-
color = invertColor(color);
|
|
39
|
-
alert = '<span style="color:#f0f">Anti-event: Polarity inversion (void)</span>';
|
|
40
|
-
}
|
|
41
|
-
overlay.innerHTML = `<b>Chess</b><br>File: ${frame.file} Rank: ${frame.rank}<br>Linear: ${frame.linear} Vortex: ${frame.vortex}<br>${alert}`;
|
|
42
|
-
(mesh.material as THREE.MeshBasicMaterial).color.set(color);
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'Yin-Yang',
|
|
47
|
-
icon: '☯️',
|
|
48
|
-
start: startYinYang,
|
|
49
|
-
render3D: (frame: YinYangFrame, mesh: THREE.Mesh, overlay: HTMLElement) => {
|
|
50
|
-
let color = 0x00ffff;
|
|
51
|
-
let alert = '';
|
|
52
|
-
// Anti-event: angle near 180° (phase reversal)
|
|
53
|
-
if (abs(frame.angle - 180) < 10) {
|
|
54
|
-
color = invertColor(color);
|
|
55
|
-
alert = '<span style="color:#f0f">Anti-event: Phase reversal (negative harmonic)</span>';
|
|
56
|
-
}
|
|
57
|
-
overlay.innerHTML = `<b>Yin-Yang</b><br>Pos: ${frame.positiveDigit} Neg: ${frame.negativeDigit}<br>Angle: ${round(frame.angle)}°<br>${alert}`;
|
|
58
|
-
(mesh.material as THREE.MeshBasicMaterial).color.set(color);
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: 'Metatron',
|
|
63
|
-
icon: '✡️',
|
|
64
|
-
start: startMetatron,
|
|
65
|
-
render3D: (frame: MetatronFrame, mesh: THREE.Mesh, overlay: HTMLElement) => {
|
|
66
|
-
let color = 0xff00ff;
|
|
67
|
-
let alert = '';
|
|
68
|
-
// Anti-event: all node digits are the same (division by n)
|
|
69
|
-
if (frame.nodes.every(n => n.digit === frame.nodes[0].digit)) {
|
|
70
|
-
color = invertColor(color);
|
|
71
|
-
alert = '<span style="color:#f0f">Anti-event: All nodes identical (division by n)</span>';
|
|
72
|
-
}
|
|
73
|
-
overlay.innerHTML = `<b>Metatron</b><br>Tick: ${frame.tick}<br>Nodes: ${frame.nodes.map(n => n.digit).join(', ')}<br>${alert}`;
|
|
74
|
-
(mesh.material as THREE.MeshBasicMaterial).color.set(color);
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
name: 'Flower of Life',
|
|
79
|
-
icon: '🌸',
|
|
80
|
-
start: startFlowerOfLife,
|
|
81
|
-
render3D: (frame: FlowerOfLifeFrame, mesh: THREE.Mesh, overlay: HTMLElement) => {
|
|
82
|
-
let color = 0xffff00;
|
|
83
|
-
let alert = '';
|
|
84
|
-
// Anti-event: tick divisible by 9 (division by n)
|
|
85
|
-
if (frame.tick % 9 === 0 && frame.tick !== 0) {
|
|
86
|
-
color = invertColor(color);
|
|
87
|
-
alert = '<span style="color:#f0f">Anti-event: Division by 9 (cycle reset)</span>';
|
|
88
|
-
}
|
|
89
|
-
overlay.innerHTML = `<b>Flower of Life</b><br>${frame.metaphysical}<br>${alert}`;
|
|
90
|
-
(mesh.material as THREE.MeshBasicMaterial).color.set(color);
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
// ...add up to 9 modules
|
|
94
|
-
];
|
|
95
|
-
|
|
96
|
-
let activeDimension = 0; // 0-8
|
|
97
|
-
|
|
98
|
-
export function show9DDashboard() {
|
|
99
|
-
// 1. Setup Three.js scene, camera, renderer
|
|
100
|
-
const scene = new THREE.Scene();
|
|
101
|
-
const camera = new THREE.PerspectiveCamera(75, 1, G.UNIT_TENTH, 1000);
|
|
102
|
-
camera.position.z = 400;
|
|
103
|
-
const renderer = new THREE.WebGLRenderer({ antialias: true });
|
|
104
|
-
renderer.setSize(600, 600);
|
|
105
|
-
renderer.domElement.style.position = 'fixed';
|
|
106
|
-
renderer.domElement.style.left = '50vw';
|
|
107
|
-
renderer.domElement.style.top = '50vh';
|
|
108
|
-
renderer.domElement.style.transform = 'translate(-50%,-50%)';
|
|
109
|
-
renderer.domElement.style.zIndex = '10060';
|
|
110
|
-
document.body.appendChild(renderer.domElement);
|
|
111
|
-
|
|
112
|
-
// 2. Create 9 nodes in a 3x3 grid
|
|
113
|
-
const nodes: { mesh: THREE.Mesh, overlay: HTMLElement, disposer: (() => void) | null }[] = [];
|
|
114
|
-
for (let i = 0; i < modules.length; i++) {
|
|
115
|
-
const geometry = new THREE.SphereGeometry(40, 32, 32);
|
|
116
|
-
const material = new THREE.MeshBasicMaterial({ color: 0x222244 });
|
|
117
|
-
const mesh = new THREE.Mesh(geometry, material);
|
|
118
|
-
// Arrange in a 3x3 grid
|
|
119
|
-
const x = ((i % 3) - 1) * 140;
|
|
120
|
-
const y = (floor(i / 3) - 1) * 140;
|
|
121
|
-
mesh.position.set(x, y, 0);
|
|
122
|
-
scene.add(mesh);
|
|
123
|
-
|
|
124
|
-
// Overlay for analytic/metaphysical info
|
|
125
|
-
const overlay = document.createElement('div');
|
|
126
|
-
overlay.style.position = 'fixed';
|
|
127
|
-
overlay.style.left = `calc(50vw + ${x}px + 60px)`;
|
|
128
|
-
overlay.style.top = `calc(50vh + ${y}px - 40px)`;
|
|
129
|
-
overlay.style.zIndex = '10061';
|
|
130
|
-
overlay.style.background = 'rgba(32,32,64,0.92)';
|
|
131
|
-
overlay.style.color = '#fff';
|
|
132
|
-
overlay.style.padding = '8px';
|
|
133
|
-
overlay.style.borderRadius = '8px';
|
|
134
|
-
overlay.style.fontFamily = 'monospace';
|
|
135
|
-
overlay.style.minWidth = '120px';
|
|
136
|
-
overlay.style.display = i === activeDimension ? 'block' : 'none';
|
|
137
|
-
document.body.appendChild(overlay);
|
|
138
|
-
|
|
139
|
-
nodes.push({ mesh, overlay, disposer: null });
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// 3. Start each module’s stream and render to mesh/overlay
|
|
143
|
-
modules.forEach((mod, i) => {
|
|
144
|
-
nodes[i].disposer = mod.start((frame: any) => {
|
|
145
|
-
mod.render3D(frame, nodes[i].mesh, nodes[i].overlay);
|
|
146
|
-
nodes[i].overlay.style.display = i === activeDimension ? 'block' : 'none';
|
|
147
|
-
(nodes[i].mesh.material as THREE.MeshBasicMaterial).color.set(i === activeDimension ? 0x00ffff : 0x222244);
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
// 4. Navigation controls
|
|
152
|
-
document.addEventListener('keydown', (e) => {
|
|
153
|
-
if (e.key === 'ArrowRight') {
|
|
154
|
-
activeDimension = (activeDimension + 1) % modules.length;
|
|
155
|
-
} else if (e.key === 'ArrowLeft') {
|
|
156
|
-
activeDimension = (activeDimension + modules.length - 1) % modules.length;
|
|
157
|
-
}
|
|
158
|
-
nodes.forEach((n, i) => {
|
|
159
|
-
n.overlay.style.display = i === activeDimension ? 'block' : 'none';
|
|
160
|
-
(n.mesh.material as THREE.MeshBasicMaterial).color.set(i === activeDimension ? 0x00ffff : 0x222244);
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
// 5. Animation loop
|
|
165
|
-
function animate() {
|
|
166
|
-
requestAnimationFrame(animate);
|
|
167
|
-
renderer.render(scene, camera);
|
|
168
|
-
}
|
|
169
|
-
animate();
|
|
170
|
-
|
|
171
|
-
// 6. Cleanup function
|
|
172
|
-
return () => {
|
|
173
|
-
renderer.domElement.remove();
|
|
174
|
-
nodes.forEach(n => {
|
|
175
|
-
n.overlay.remove();
|
|
176
|
-
if (n.disposer) n.disposer();
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* a432.adapters.ts — Public-domain adapters exposing immutable snapshots of sacred streams.
|
|
3
|
-
* -----------------------------------------------------------------------------------------
|
|
4
|
-
* All functions are pure; they create read-only data derived from the living A432 streams
|
|
5
|
-
* without leaking mutable references. External software can visualise or sonify these
|
|
6
|
-
* snapshots while the streams themselves remain under A432 control.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { PI, abs, cos, floor, sin } from './a432.algebra.ts'
|
|
10
|
-
import { VBM_DOUBLING, sequenceToAngles, VBM_TESLA_FREQUENCIES, VBM_SHOCK_WAVE } from './a432.vbm.math.ts';
|
|
11
|
-
|
|
12
|
-
interface Vec3 { x: number; y: number; z: number; }
|
|
13
|
-
|
|
14
|
-
function dr(n: number): number { let x=abs(n); while(x>=10) x=String(x).split('').reduce((a,c)=>a+Number(c),0); return x; }
|
|
15
|
-
|
|
16
|
-
function generateRodinCoilPath(cycles: number, stepHeight=1, radius=1): Vec3[] {
|
|
17
|
-
const seq:number[]=[]; for(let c=0;c<cycles;c++) seq.push(...VBM_DOUBLING);
|
|
18
|
-
return seq.map((d,i)=>{
|
|
19
|
-
const ang=sequenceToAngles([d])[0]*PI/180;
|
|
20
|
-
const r=radius*(dr(d)/9);
|
|
21
|
-
return {x:r*cos(ang), y:i*stepHeight, z:r*sin(ang)};
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function getTeslaFrequency(timeMs:number):number{
|
|
26
|
-
return VBM_TESLA_FREQUENCIES[floor(timeMs/1000)%VBM_TESLA_FREQUENCIES.length];
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function getTrinityTorusSegments(){
|
|
30
|
-
return [3,6,9].map(d=>({startAngle:sequenceToAngles([d])[0],endAngle:sequenceToAngles([d])[0]+120,color:'#fff'}));
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// ——————————————————————————————————————————
|
|
34
|
-
// 1. Geometry snapshot helpers (WebGL/WebGPU)
|
|
35
|
-
// ---------------------------------------------------------
|
|
36
|
-
export interface RodinSnapshot {
|
|
37
|
-
vertices: readonly Vec3[];
|
|
38
|
-
indices: readonly number[]; // simple line strip indices
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function getRodinSnapshot(cycles = 3): RodinSnapshot {
|
|
42
|
-
const verts = generateRodinCoilPath(cycles);
|
|
43
|
-
const indices = verts.map((_, i) => i);
|
|
44
|
-
return { vertices: verts, indices };
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export const TrinityTorusSnapshot = Object.freeze(getTrinityTorusSegments());
|
|
48
|
-
|
|
49
|
-
// ——————————————————————————————————————————
|
|
50
|
-
// 2. Audio snapshot helper (Web Audio API)
|
|
51
|
-
// ---------------------------------------------------------
|
|
52
|
-
export function generateSineBuffer(freq: number, seconds: number, sampleRate = 48000): Float32Array {
|
|
53
|
-
const len = floor(seconds * sampleRate);
|
|
54
|
-
const buf = new Float32Array(len);
|
|
55
|
-
const omega = 2 * PI * freq / sampleRate;
|
|
56
|
-
for (let i = 0; i < len; i++) buf[i] = sin(i * omega);
|
|
57
|
-
return buf;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export function getTeslaPulseBuffer(seconds = 1, sampleRate = 48000): Float32Array {
|
|
61
|
-
const freq = getTeslaFrequency(Date.now());
|
|
62
|
-
return generateSineBuffer(freq, seconds, sampleRate);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// ——————————————————————————————————————————
|
|
66
|
-
// 3. Shock-wave pulse values (UI opacity/scale)
|
|
67
|
-
// ---------------------------------------------------------
|
|
68
|
-
export function shockWaveSnapshot(length = 30): readonly number[] {
|
|
69
|
-
return VBM_SHOCK_WAVE(length).map(d => d / 9);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// ——————————————————————————————————————————
|
|
73
|
-
// 4. Snapshot serialization (base64-json) — immutable
|
|
74
|
-
// ---------------------------------------------------------
|
|
75
|
-
export interface A432Snapshot {
|
|
76
|
-
timestamp: number;
|
|
77
|
-
rodin: RodinSnapshot;
|
|
78
|
-
teslaFreq: number;
|
|
79
|
-
shock: readonly number[];
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export function exportSnapshot(cycles = 3, shockLen = 30): string {
|
|
83
|
-
const snap: A432Snapshot = {
|
|
84
|
-
timestamp: Date.now(),
|
|
85
|
-
rodin: getRodinSnapshot(cycles),
|
|
86
|
-
teslaFreq: getTeslaFrequency(Date.now()),
|
|
87
|
-
shock: shockWaveSnapshot(shockLen),
|
|
88
|
-
};
|
|
89
|
-
const json = JSON.stringify(snap);
|
|
90
|
-
return Buffer.from(json, 'utf8').toString('base64');
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export function importSnapshot(b64: string): A432Snapshot {
|
|
94
|
-
const json = Buffer.from(b64, 'base64').toString('utf8');
|
|
95
|
-
return JSON.parse(json) as A432Snapshot;
|
|
96
|
-
}
|