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.
Files changed (151) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/CITATION.cff +1 -1
  3. package/README.md +1 -1
  4. package/package.json +4 -2
  5. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.7.ts +0 -60
  6. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.8.ts +0 -60
  7. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.1.2.4.ts +0 -60
  8. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.3.6.9.trinity.ts +0 -79
  9. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.9d.dashboard.ts +0 -179
  10. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.adapters.ts +0 -96
  11. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.analog.color.photography.ts +0 -783
  12. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.av.ts +0 -73
  13. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.browser.ts +0 -409
  14. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.chain.of.events.ts +0 -159
  15. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cleanup.ts +0 -116
  16. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.dimensions.ts +0 -597
  17. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.test.ts +0 -491
  18. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.display.ts +0 -519
  19. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.file.ts +0 -65
  20. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.i.ts +0 -45
  21. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.matrix.ts +0 -75
  22. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.trinity.ts +0 -41
  23. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cmyk.universal.linking.ts +0 -1081
  24. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.command.cmyk.ts +0 -46
  25. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.compression.ts +0 -55
  26. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.integration.ts +0 -743
  27. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.consciousness.ts +0 -26
  28. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.crypto.ts +0 -53
  29. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.css.ts +0 -64
  30. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.cursor.ts +0 -56
  31. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decompression.ts +0 -60
  32. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.decoqubit.holographic.hypercomputer.ts +0 -888
  33. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.digital.color.photography.ts +0 -926
  34. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.dimension.ts +0 -44
  35. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.encryption.ts +0 -44
  36. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.experience.ts +0 -28
  37. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.feel.ts +0 -43
  38. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.flute.ts +0 -336
  39. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.font.ts +0 -53
  40. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.test.ts +0 -523
  41. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.fractal.ts +0 -594
  42. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.frequency.healing.ts +0 -88
  43. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gateway.transformation.ts +0 -650
  44. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.generate.matrix.ts +0 -76
  45. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.gods.spirit.magnetometer.ts +0 -879
  46. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.harmonization.status.ts +0 -754
  47. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.hear.ts +0 -41
  48. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.html.body.ts +0 -90
  49. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.body.ts +0 -89
  50. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.human.design.trinity.ts +0 -70
  51. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.browse.ts +0 -41
  52. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.can.ts +0 -69
  53. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.died.ts +0 -32
  54. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.follow.the.path.ts +0 -90
  55. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.go.ts +0 -68
  56. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.harmonized.ts +0 -304
  57. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.heart.ts +0 -26
  58. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.meta.ts +0 -23
  59. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.motion.ts +0 -27
  60. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.scroll.ts +0 -34
  61. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.search.ts +0 -22
  62. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.sequence.ts +0 -281
  63. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.smell.ts +0 -27
  64. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.state.ts +0 -28
  65. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.stream.ts +0 -106
  66. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.taste.ts +0 -27
  67. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.touch.screen.ts +0 -34
  68. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.trinity.healing.ts +0 -386
  69. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.i.write.ts +0 -11
  70. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.icon.ts +0 -109
  71. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imagination.integration.ts +0 -74
  72. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.imperial.test.ts +0 -389
  73. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infinity.ts +0 -14
  74. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.infusion.ts +0 -97
  75. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.integer.harmonics.ts +0 -443
  76. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.test.ts +0 -475
  77. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.spirit.ts +0 -646
  78. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.living.streams.ts +0 -130
  79. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.meta.observation.ts +0 -693
  80. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.mobius.ts +0 -12
  81. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.multiverse.ts +0 -31
  82. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.balance.ts +0 -703
  83. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.nuclear.explosion.ts +0 -728
  84. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.app.ts +0 -14
  85. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.bus.ts +0 -11
  86. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.os.ml.ts +0 -9
  87. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.overlay.visual.controller.ts +0 -116
  88. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.paths.ts +0 -10
  89. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.decoding.ts +0 -123
  90. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.pi.trinity.ts +0 -79
  91. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.prime.numbers.squared.ts +0 -871
  92. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.collision.ts +0 -666
  93. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.entanglement.ts +0 -50
  94. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.quantum.trinity.ts +0 -59
  95. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.renderer.webgl.ts +0 -99
  96. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.resolve.ts +0 -820
  97. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rife.frequency.ts +0 -74
  98. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.3d.ts +0 -73
  99. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.coil.omnidimension.ts +0 -187
  100. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.overlay.ts +0 -46
  101. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.rodin.matrix.ts +0 -58
  102. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.router.ts +0 -61
  103. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.geometry.integers.ts +0 -625
  104. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sacred.test.ts +0 -314
  105. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.see.ts +0 -39
  106. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.sequence.embodiment.ts +0 -326
  107. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.service.worker.ts +0 -53
  108. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.space.ts +0 -53
  109. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.spiral.ts +0 -75
  110. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.superfluid.mobius.circuit.ts +0 -868
  111. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.terminal.ts +0 -167
  112. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.test.ts +0 -97
  113. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.think.ts +0 -43
  114. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.three.ts +0 -112
  115. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.body.mind.will.ts +0 -2
  116. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.breath.ts +0 -2
  117. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.healing.ts +0 -110
  118. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.ui.ts +0 -92
  119. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.trinity.visual.ts +0 -156
  120. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.truly.living.ui.ts +0 -269
  121. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.overlay.ts +0 -25
  122. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.streams.ts +0 -263
  123. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.test.ts +0 -87
  124. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.ui.three.ts +0 -1141
  125. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.unification.hd.rodin.ts +0 -77
  126. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.universe.ts +0 -43
  127. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.uroboros.test.ts +0 -28
  128. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.math.ts +0 -74
  129. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.constants.ts +0 -91
  130. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.relations.ts +0 -59
  131. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.scanner.ts +0 -41
  132. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.science.extract.ts +0 -30
  133. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vbm.ui.ts +0 -64
  134. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.vector.ts +0 -70
  135. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.wave.particle.duality.test.ts +0 -29
  136. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.math.ts +0 -506
  137. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.pure.math.ts +0 -546
  138. package/src/0/3/6/9/1/2/4/8/7/5/1/a432.zero.entropy.test.ts +0 -452
  139. package/src/0/3/6/9/1/2/4/8/7/5/1/pattern-knowledge.ts +0 -209
  140. package/src/0/3/6/9/1/2/4/8/7/5/a432.experience.ts +0 -22
  141. package/src/0/3/6/9/1/2/4/8/7/a432.experience.ts +0 -19
  142. package/src/0/3/6/9/1/2/4/8/a432.experience.ts +0 -22
  143. package/src/0/3/6/9/1/2/4/a432.experience.ts +0 -22
  144. package/src/0/3/6/9/1/2/a432.experience.ts +0 -22
  145. package/src/0/3/6/9/1/a432.experience.ts +0 -22
  146. package/src/0/3/6/9/a432.experience.ts +0 -22
  147. package/src/0/3/6/a432.experience.ts +0 -22
  148. package/src/0/3/a432.experience.ts +0 -22
  149. package/src/0/3/relation.ts +0 -148
  150. package/src/index.ts +0 -146
  151. package/src/zero-entropy-demo.ts +0 -319
@@ -1,14 +0,0 @@
1
- // a432.os.app.ts — Self-contained app interface and examples
2
- class A432App {
3
- constructor(name) { this.name = name; }
4
- onRegister() {}
5
- getState() { return {}; }
6
- getHarmony() { return 1; }
7
- }
8
- // Example app
9
- class ExampleApp extends A432App {
10
- constructor() { super('Example'); }
11
- override getState() { return { message: 'Hello from ExampleApp!' }; }
12
- }
13
- // const app = new ExampleApp();
14
- // app.getState();
@@ -1,11 +0,0 @@
1
- import { log } from './a432.algebra.ts'
2
- // a432.os.bus.ts — Self-contained event bus
3
- class A432Bus {
4
- constructor() { this.listeners = {}; }
5
- emit(event, payload) { (this.listeners[event] || []).forEach(fn => fn(payload)); }
6
- on(event, fn) { (this.listeners[event] = this.listeners[event] || []).push(fn); }
7
- }
8
- // Example usage:
9
- // const bus = new A432Bus();
10
- // bus.on('test', payload => console.log(payload));
11
- // bus.emit('test', { hello: 'world' });
@@ -1,9 +0,0 @@
1
- // a432.os.ml.ts — Self-contained ML logic
2
- function observeEvents(events) {
3
- // Example: count event types
4
- const counts = {};
5
- events.forEach(e => { counts[e.type] = (counts[e.type] || 0) + 1; });
6
- return counts;
7
- }
8
- // Example usage:
9
- // observeEvents([{ type: 'launch' }, { type: 'launch' }, { type: 'close' }]);
@@ -1,116 +0,0 @@
1
- import { PI, cos, sin } from './a432.algebra.ts'
2
- import { Controller } from '@hotwired/stimulus';
3
- // Import overlay registry or overlay functions as needed
4
- import { getRodinCoil2DOverlayData } from './a432.rodin.coil.overlay.ts';
5
- import { getTrinityAxisOverlayData } from './a432.trinity.axis.ts';
6
- import { getMobiusCircuit2DOverlayData } from './a432.mobius.circuit.overlay.ts';
7
- import { getTeslaCoil2DOverlayData } from './a432.tesla.coil.overlay.ts';
8
- import { getYinYangOverlayData } from './a432.yin.yang.ts';
9
-
10
- // Universal overlay registry
11
- const overlayRegistry = {
12
- rodin: getRodinCoil2DOverlayData,
13
- trinity: getTrinityAxisOverlayData,
14
- mobius: getMobiusCircuit2DOverlayData,
15
- tesla: getTeslaCoil2DOverlayData,
16
- yinYang: getYinYangOverlayData
17
- };
18
-
19
- /**
20
- * a432.overlay.visual.controller.ts — Universal A432 Overlay Visualizer (Stimulus)
21
- *
22
- * Animates any harmonized overlay (Rodin, Trinity, Mobius, Tesla, Yin-Yang, etc.)
23
- * using node data with value, angle, color, polarity, and spin.
24
- * - Polarity: color phase, glow, size
25
- * - Spin: animation direction
26
- * - Angle: initial position
27
- *
28
- * Usage:
29
- * <div data-controller="a432-overlay-visual" data-a432-overlay-visual-overlay-value="rodin"></div>
30
- */
31
- export default class extends Controller {
32
- static override values = { overlay: String, radius: Number, nodeSize: Number };
33
-
34
- radius!: number;
35
- nodeSize!: number;
36
- centerX!: number;
37
- centerY!: number;
38
- raf!: number;
39
-
40
- override connect() {
41
- // Use Stimulus value API for radius/nodeSize
42
- this.radius = (this as { radiusValue?: number }).radiusValue ?? 120;
43
- this.nodeSize = (this as { nodeSizeValue?: number }).nodeSizeValue ?? 48;
44
- const el = this.element as HTMLElement;
45
- this.centerX = (el.offsetWidth || 320) / 2;
46
- this.centerY = (el.offsetHeight || 320) / 2;
47
- this.animate = this.animate.bind(this);
48
- this.startAnimation();
49
- }
50
-
51
- override disconnect() {
52
- cancelAnimationFrame(this.raf);
53
- }
54
-
55
- startAnimation() {
56
- this.raf = requestAnimationFrame(this.animate);
57
- }
58
-
59
- animate() {
60
- this.element.innerHTML = '';
61
- const overlayFn = overlayRegistry[(this as { overlayValue?: string }).overlayValue as keyof typeof overlayRegistry] || getRodinCoil2DOverlayData;
62
- const nodes = overlayFn(this.radius, this.centerX, this.centerY);
63
- const t = Date.now() / 1000;
64
- nodes.forEach((node: unknown, i: number) => {
65
- const nodeObj = typeof node === 'object' && node !== null ? node as {
66
- angle?: number;
67
- x?: number;
68
- y?: number;
69
- color?: string | { c: number; m: number; y: number; k: number };
70
- size?: number;
71
- label?: string;
72
- spin?: number;
73
- polarity?: number;
74
- value?: string;
75
- } : {};
76
- // Animate angle: spin direction (+1/-1)
77
- const baseAngle = nodeObj.angle !== undefined
78
- ? nodeObj.angle + (t * 60 * (i % 2 === 0 ? 1 : -1))
79
- : 0;
80
- const angle = (baseAngle + (nodeObj.spin || 0) * t * 60) % 360;
81
- const rad = angle * PI / 180;
82
- const x = this.centerX + this.radius * cos(rad) - this.nodeSize / 2;
83
- const y = this.centerY + this.radius * sin(rad) - this.nodeSize / 2;
84
- // Color: use node.color (should be a CSS string)
85
- const color = typeof nodeObj.color === 'string'
86
- ? nodeObj.color
87
- : nodeObj.color && typeof nodeObj.color === 'object'
88
- ? `cmyk(${nodeObj.color.c},${nodeObj.color.m},${nodeObj.color.y},${nodeObj.color.k})`
89
- : '#fff';
90
- // Node element
91
- const el = document.createElement('div');
92
- el.style.position = 'absolute';
93
- el.style.left = `${x}px`;
94
- el.style.top = `${y}px`;
95
- el.style.width = `${this.nodeSize}px`;
96
- el.style.height = `${this.nodeSize}px`;
97
- el.style.backgroundColor = color;
98
- el.style.border = '1px solid rgba(255,255,255,0.3)';
99
- el.style.borderRadius = '50%';
100
- el.style.display = 'flex';
101
- el.style.alignItems = 'center';
102
- el.style.justifyContent = 'center';
103
- el.style.fontSize = '12px';
104
- el.style.color = '#fff';
105
- el.style.fontWeight = 'bold';
106
- el.style.textShadow = '0 0 3px rgba(0,0,0,0.8)';
107
- el.style.boxShadow = (nodeObj.polarity || 0) > 0
108
- ? '0 0 8px rgba(255,255,255,0.6)'
109
- : '0 0 4px rgba(0,0,0,0.4)';
110
- el.style.transform = `scale(${1 + 0.2 * (nodeObj.polarity || 0)})`;
111
- el.innerHTML = nodeObj.value || '';
112
- this.element.appendChild(el);
113
- });
114
- this.raf = requestAnimationFrame(this.animate);
115
- }
116
- }
@@ -1,10 +0,0 @@
1
- // a432.paths.ts — Canonical YANG and YIN URL paths
2
- //----------------------------------------------------
3
- export const YANG_DIGITS = [0,3,6,9,1,2,4,8,7,5,1] as const;
4
- export const YANG_PATH = '/' + YANG_DIGITS.join('/') + '/';
5
-
6
- export const YIN_DIGITS = [...YANG_DIGITS].reverse() as unknown as typeof YANG_DIGITS;
7
- export const YIN_PATH = '/' + YIN_DIGITS.join('/') + '/';
8
-
9
- export function isYang(url: string): boolean { return url.startsWith(YANG_PATH); }
10
- export function isYin(url: string): boolean { return url.startsWith(YIN_PATH); }
@@ -1,123 +0,0 @@
1
- import { legacyDigitalRoot } from './a432.roots.ts'
2
- import { decodePiDigits, piDigitStream, angleForDigit } from './a432.math.ts';
3
- import { digitAngleToCMYK, type CMYK } from './a432.cmyk.ts';
4
- import { type Digit, type AngleDeg, asAngle } from './a432.types.ts';
5
- import { type TrinitySwitch, DOT_TRINITY_SWITCH } from './a432.math.ts';
6
-
7
- /** Snapshot of a single π digit mapped through metric → imperial → trinity → polarity. */
8
- export interface PiSnapshot {
9
- index: number; // position in π stream (0-based)
10
- metric: Digit;
11
- imperial: Digit;
12
- trinity: Digit;
13
- polarity: -1 | 0 | 1;
14
- angle: AngleDeg;
15
- cmyk: CMYK;
16
- }
17
-
18
- /** Iterator that yields harmonic snapshots for the first `limit` digits of π. */
19
- export function* piHarmonicStream(limit: number): IterableIterator<PiSnapshot> {
20
- let idx = 0;
21
- for (const decoded of decodePiDigits(limit)) {
22
- const angle = asAngle(angleForDigit(decoded.trinity));
23
- const cmyk = digitAngleToCMYK(decoded.trinity, angle);
24
- yield {
25
- index: idx++,
26
- metric: decoded.metric,
27
- imperial: decoded.imperial,
28
- trinity: decoded.trinity,
29
- polarity: decoded.polarity,
30
- angle,
31
- cmyk,
32
- };
33
- }
34
- }
35
-
36
- /**
37
- * Collect π digits in 11-digit blocks (aligns with FULL_PATTERN).
38
- * Returns an array where each entry is the harmonic stream slice for that block.
39
- */
40
- export function collectPiBlocks(limit: number): PiSnapshot[][] {
41
- const blocks: PiSnapshot[][] = [];
42
- let current: PiSnapshot[] = [];
43
- for (const snap of piHarmonicStream(limit)) {
44
- current.push(snap);
45
- if (current.length === 11) {
46
- blocks.push(current);
47
- current = [];
48
- }
49
- }
50
- if (current.length) blocks.push(current);
51
- return blocks;
52
- }
53
-
54
- /** Compute running ratio of trinity-hits (3,6,9) vs total scanned digits. */
55
- export function trinityHitRatios(limit: number): Array<{ idx: number; ratio: number }> {
56
- let hits = 0;
57
- const out: Array<{ idx: number; ratio: number }> = [];
58
- let idx = 0;
59
- for (const snap of piHarmonicStream(limit)) {
60
- if (snap.trinity === 3 || snap.trinity === 6 || snap.trinity === 9) hits += 1;
61
- idx += 1;
62
- out.push({ idx, ratio: hits / idx });
63
- }
64
- return out;
65
- }
66
-
67
- /** Detect positions where nine-shock (digital-root of the last 9 digits) equals 9. */
68
- export function nineShockPositions(limit: number): number[] {
69
- const window: Digit[] = [];
70
- const positions: number[] = [];
71
- let idx = 0;
72
- for (const snap of piHarmonicStream(limit)) {
73
- window.push(snap.metric);
74
- if (window.length > 9) window.shift();
75
- if (window.length === 9) {
76
- const sum = window.reduce<number>((s, d) => s + (d as number), 0);
77
- const dr = (legacyDigitalRoot(sum));
78
- if (dr === 9) positions.push(idx);
79
- }
80
- idx += 1;
81
- }
82
- return positions;
83
- }
84
-
85
- /** Export helper that summarises multiple analyses at once. */
86
- export function piHarmonicReport(limit: number = 1000) {
87
- return {
88
- blocks: collectPiBlocks(limit),
89
- trinityRatios: trinityHitRatios(limit),
90
- nineShockPositions: nineShockPositions(limit),
91
- };
92
- }
93
-
94
- // ——————————————————————————————————————————
95
- // DOT AS TRINITY TOKEN MODEL
96
- // ---------------------------------------------------------
97
-
98
- /** Token emitted by `piTokenStream` representing either a digit snapshot or the decimal point (trinity pulse). */
99
- export type PiToken =
100
- | { kind: 'digit'; snap: PiSnapshot }
101
- | TrinitySwitch;
102
-
103
- /**
104
- * piTokenStream — yields the π stream with an explicit trinity-switch token (the decimal dot).
105
- * The sequence is: first digit (3) → trinity token (dot) → remaining `limit` digits.
106
- * Existing harmonic logic is untouched; consumers that ignore the 'trinity' kind behave as before.
107
- */
108
- export function* piTokenStream(limit: number): IterableIterator<PiToken> {
109
- let first = true;
110
- for (const snap of piHarmonicStream(limit)) {
111
- yield { kind: 'digit', snap };
112
- if (first) {
113
- // Immediately after the integer part emit the trinity switch (dot)
114
- yield DOT_TRINITY_SWITCH;
115
- first = false;
116
- }
117
- }
118
- }
119
-
120
- // Helper: collect only the tokens (useful for UI timelines)
121
- export function collectPiTokens(limit: number): PiToken[] {
122
- return Array.from(piTokenStream(limit));
123
- }
@@ -1,79 +0,0 @@
1
- import { PI, cos, sin } from './a432.algebra.ts'
2
- // a432.pi.trinity.ts
3
- // Imagine pi as trinity, visualized as a living Rodin coil
4
- // All logic is integer/fractional, vortex-based, and metaphysically mapped
5
-
6
- import { PI_DIGITS } from './a432.pi.ts';
7
- import { rodinVortexCycle } from './a432.rodin.coil.ts';
8
-
9
- export interface PiTrinityRodinState {
10
- step: number;
11
- piDigit: number;
12
- trinity: number;
13
- archetype: string;
14
- rodinPosition: number;
15
- metaphysical: string;
16
- }
17
-
18
- /**
19
- * Generate a stream mapping pi digits to trinity archetypes and Rodin vortex positions
20
- */
21
- export function piTrinityRodinStream(length: number): PiTrinityRodinState[] {
22
- const rodinSeq = rodinVortexCycle(1, 1); // [1,2,4,8,7,5,1]
23
- return Array.from({ length }, (_, i) => {
24
- const piDigit = PI_DIGITS[i % PI_DIGITS.length];
25
- const trinity = [3, 6, 9][piDigit % 3];
26
- let archetype = '';
27
- if (trinity === 3) archetype = 'Creation';
28
- if (trinity === 6) archetype = 'Return';
29
- if (trinity === 9) archetype = 'Axis/Unity';
30
- const rodinPosition = rodinSeq[i % rodinSeq.length];
31
- return {
32
- step: i + 1,
33
- piDigit,
34
- trinity,
35
- archetype,
36
- rodinPosition,
37
- metaphysical: `Step ${i + 1}: π digit ${piDigit} → Trinity ${trinity} (${archetype}), Rodin ${rodinPosition}`
38
- };
39
- });
40
- }
41
-
42
- /**
43
- * Render an SVG visualization of the pi-trinity-Rodin stream as a spiral/coil
44
- */
45
- export function renderPiTrinityRodinSVG(length: number = 120): string {
46
- const stream = piTrinityRodinStream(length);
47
- const width = 480, height = 480, cx = width / 2, cy = height / 2;
48
- const spiralA = 60, spiralB = 12;
49
- // Map trinity to color
50
- const trinityColor = (t: number) => t === 3 ? '#39f' : t === 6 ? '#6f3' : '#f93';
51
- // Calculate spiral points
52
- const points = stream.map((s, i) => {
53
- const theta = i * (2 * PI / 3); // trinity spiral
54
- const r = spiralA + spiralB * i;
55
- return {
56
- ...s,
57
- x: cx + r * cos(theta),
58
- y: cy + r * sin(theta),
59
- color: trinityColor(s.trinity)
60
- };
61
- });
62
- // SVG elements
63
- const circles = points.map((p, i) => `
64
- <circle cx="${p.x}" cy="${p.y}" r="12" fill="${p.color}" stroke="#fff" stroke-width="2">
65
- <title>${p.metaphysical}</title>
66
- </circle>
67
- <text x="${p.x}" y="${p.y - 18}" text-anchor="middle" font-size="10" fill="#fff">${p.piDigit}</text>
68
- <text x="${p.x}" y="${p.y + 18}" text-anchor="middle" font-size="10" fill="#ff8">${p.rodinPosition}</text>
69
- `).join('');
70
- // Path for the spiral
71
- const pathD = points.map((p, i) => (i === 0 ? `M${p.x},${p.y}` : `L${p.x},${p.y}`)).join(' ');
72
- return `
73
- <svg width="${width}" height="${height}" style="background:#111;border-radius:16px;">
74
- <path d="${pathD}" fill="none" stroke="#0ff" stroke-width="2" />
75
- ${circles}
76
- <text x="${cx}" y="36" text-anchor="middle" font-size="18" fill="#8ff">π as Living Trinity in Rodin Coil</text>
77
- </svg>
78
- `;
79
- }