@aui.io/apollo 0.1.25 → 0.1.26
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/node_modules/@aui.io/apollo-cli/package.json +3 -3
- package/node_modules/@aui.io/apollo-core/package.json +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/SplashCard.js +9 -5
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/SplashCard.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/wordmark.d.ts +40 -29
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/wordmark.js +409 -202
- package/node_modules/@aui.io/apollo-tui/dist/src/ui/wordmark.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/package.json +2 -2
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "Command-line client for the Apollo runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"test": "vitest run"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aui.io/apollo-core": "0.1.
|
|
31
|
+
"@aui.io/apollo-core": "0.1.26",
|
|
32
32
|
"commander": "^14.0.3",
|
|
33
33
|
"picocolors": "^1.1.1"
|
|
34
34
|
},
|
|
35
35
|
"optionalDependencies": {
|
|
36
|
-
"@aui.io/apollo-tui": "0.1.
|
|
36
|
+
"@aui.io/apollo-tui": "0.1.26"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@eslint/js": "^9.39.5",
|
|
@@ -2566,7 +2566,7 @@ function App({ context: initialContext, initialScope, onQuit }) {
|
|
|
2566
2566
|
retryOperation(op);
|
|
2567
2567
|
else
|
|
2568
2568
|
setActivityCursor(index);
|
|
2569
|
-
} })) : mode === "author" ? (authorViewEffective === "home" ? (_jsx(AuthorHome, { scope: scope, snapshot: snapshot, validation: validation, version: VERSION, paneTitle: paneTitle, paneLines: paneLines, resources: resourcesSummary(resourcesData), scenarios: scenariosSummary(scenariosData), session: authorSession, sessionRows: sessionRowsView, sessionCursor: clampPickerCursor(sessionCursor, authorSession?.units.length ?? 0), sessionScrollRef: contentScrollRef, sessionUnitRefs: sessionUnitRefs, backendLabel: authorBackend.label, backendDetection: backendDetection, splashRoomy: termWidth >= 90 && termHeight >=
|
|
2569
|
+
} })) : mode === "author" ? (authorViewEffective === "home" ? (_jsx(AuthorHome, { scope: scope, snapshot: snapshot, validation: validation, version: VERSION, paneTitle: paneTitle, paneLines: paneLines, resources: resourcesSummary(resourcesData), scenarios: scenariosSummary(scenariosData), session: authorSession, sessionRows: sessionRowsView, sessionCursor: clampPickerCursor(sessionCursor, authorSession?.units.length ?? 0), sessionScrollRef: contentScrollRef, sessionUnitRefs: sessionUnitRefs, backendLabel: authorBackend.label, backendDetection: backendDetection, splashRoomy: termWidth >= 90 && termHeight >= 30, onSelectUnit: (unit) => {
|
|
2570
2570
|
const clamped = clampPickerCursor(sessionCursor, authorSession?.units.length ?? 0);
|
|
2571
2571
|
// Click selects; clicking the selected unit toggles its body.
|
|
2572
2572
|
if (unit === clamped)
|
|
@@ -2,11 +2,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "@opentui/react/jsx-runtime";
|
|
|
2
2
|
/**
|
|
3
3
|
* Welcome splash card — the boxed wordmark atop Author's setup screen.
|
|
4
4
|
*
|
|
5
|
-
* On unicode + color terminals the
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* On unicode + color terminals the card plays the "waking mind" cinematic:
|
|
6
|
+
* a seed of light grows a synapse constellation, the word assembles from
|
|
7
|
+
* particles streaming out of the core, a shockwave detonates as it locks,
|
|
8
|
+
* and the canvas then lives on — thought pulses, orbiting satellites,
|
|
9
|
+
* sonar pings, and an EEG wave strip under the mark (frame math in
|
|
10
|
+
* ui/wordmark.ts; this component only ticks a counter). Roomy terminals
|
|
11
|
+
* get the full neural field; narrow ones a compact cut. Everywhere else —
|
|
12
|
+
* NO_COLOR, APOLLO_GLYPHS=ascii, bare consoles — it stays the static card
|
|
13
|
+
* the TUI has always shown, so the render-check fallback pass and the
|
|
10
14
|
* monochrome guarantee are untouched.
|
|
11
15
|
*/
|
|
12
16
|
import { useEffect, useState } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplashCard.js","sourceRoot":"","sources":["../../../src/ui/SplashCard.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"SplashCard.js","sourceRoot":"","sources":["../../../src/ui/SplashCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Splash
|
|
3
|
-
* "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame
|
|
4
|
-
* an interval; everything visible derives deterministically from
|
|
5
|
-
* here (hash-based, no Math.random), so the whole sequence is
|
|
6
|
-
* without a renderer and identical across runs.
|
|
2
|
+
* Splash "waking mind" animation — pure frame math for the welcome card's
|
|
3
|
+
* block "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame
|
|
4
|
+
* counter on an interval; everything visible derives deterministically from
|
|
5
|
+
* that number here (hash-based, no Math.random), so the whole sequence is
|
|
6
|
+
* unit-testable without a renderer and identical across runs.
|
|
7
7
|
*
|
|
8
|
-
* Two layouts share the same
|
|
8
|
+
* Two layouts share the same cinematic:
|
|
9
9
|
*
|
|
10
|
-
* compact (44 wide) — the
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* compact (44 wide) — the seed, the particle assembly, orbiting
|
|
11
|
+
* satellites, the EEG wave strip, and twinkling
|
|
12
|
+
* gutter stars around the mark
|
|
13
|
+
* field (72 wide) — the full cortex: dendrites grow a synapse
|
|
14
|
+
* constellation out of the seed, thought pulses
|
|
15
|
+
* travel the graph and feed the word through ports,
|
|
16
|
+
* satellites orbit the mark, sonar pings sweep the
|
|
17
|
+
* canvas, and a code-rain whispers at the edges
|
|
16
18
|
*
|
|
17
|
-
* The
|
|
19
|
+
* The sequence (one tick = 80ms):
|
|
18
20
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
21
|
+
* seed f0–2 a single point of light pulses alone in the dark
|
|
22
|
+
* genesis f3–14 (field) dendrites shoot from the seed; each synapse
|
|
23
|
+
* node ignites the moment its filament arrives, then
|
|
24
|
+
* the scaffolding fades and the constellation remains
|
|
25
|
+
* assembly f3–31 letters stream out of the seed as bright particles,
|
|
26
|
+
* condense through half-block static, and flash into
|
|
27
|
+
* place left → right — the mind speaks the word
|
|
28
|
+
* shock f30–… a ring of light detonates from the word across the
|
|
29
|
+
* canvas; the border catches it as it passes
|
|
30
|
+
* alive f38+ aurora sweeps (mint → ice → violet), thought pulses
|
|
31
|
+
* with easing heads and fading tails, counter-orbiting
|
|
32
|
+
* satellites that pass behind the word, sonar pings
|
|
33
|
+
* every ~9s, a live EEG wave under the word that
|
|
34
|
+
* spikes as thoughts arrive, rare amber "insight"
|
|
35
|
+
* flashes, and one-frame glitch shimmers of light
|
|
36
|
+
* across the letters
|
|
37
|
+
* decode f10+ the subtitle types on through cycling static
|
|
27
38
|
*
|
|
28
39
|
* Colors are hex literals on the theme's teal axis (#4fb8b0 = TEAL,
|
|
29
40
|
* #2e6b66 = TEAL_DIM): the animated path only runs on unicode + color
|
|
@@ -35,18 +46,18 @@ export declare const TICK_MS = 80;
|
|
|
35
46
|
/** Compact card outer width (narrow terminals). */
|
|
36
47
|
export declare const CARD_WIDTH = 44;
|
|
37
48
|
/** Neural-field card outer width (roomy terminals). */
|
|
38
|
-
export declare const CARD_WIDTH_FIELD =
|
|
49
|
+
export declare const CARD_WIDTH_FIELD = 72;
|
|
39
50
|
/** One run of same-colored cells on a splash row. */
|
|
40
51
|
export interface Chunk {
|
|
41
52
|
text: string;
|
|
42
53
|
fg: string;
|
|
43
54
|
}
|
|
44
55
|
export interface SplashFrame {
|
|
45
|
-
/** Compact: mark rows +
|
|
56
|
+
/** Compact: mark rows + EEG wave. Field: the full nine-row canvas. */
|
|
46
57
|
rows: Chunk[][];
|
|
47
|
-
/** Card border — breathes near TEAL_DIM, catching
|
|
58
|
+
/** Card border — breathes near TEAL_DIM, catching sweeps and shockwaves. */
|
|
48
59
|
border: string;
|
|
49
|
-
/** Version line tone: faint during
|
|
60
|
+
/** Version line tone: faint during assembly, settles to dim. */
|
|
50
61
|
version: string;
|
|
51
62
|
/** Decoding subtitle: [locked, forming, caret cell, pad]. Constant width. */
|
|
52
63
|
subtitle: Chunk[];
|
|
@@ -54,10 +65,10 @@ export interface SplashFrame {
|
|
|
54
65
|
/**
|
|
55
66
|
* The splash's own glyph face: 4×6-pixel letters (4 cols × 3 half-block
|
|
56
67
|
* rows) covering what "apollo" needs. @opentui/core's tiny face is only two
|
|
57
|
-
* rows tall — at card size the word read as a thin ribbon, and the
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
68
|
+
* rows tall — at card size the word read as a thin ribbon, and the effects
|
|
69
|
+
* would overwhelm it. Heavier full-block strokes keep the word legible
|
|
70
|
+
* while the show plays. Only block elements (▀▄█) are used, so the face
|
|
71
|
+
* renders wherever the wave strip and scramble static do (asserted in
|
|
61
72
|
* tests/wordmark.test.ts).
|
|
62
73
|
*/
|
|
63
74
|
export declare const APOLLO_CHARS: Readonly<Record<string, readonly string[]>>;
|
|
@@ -1,29 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Splash
|
|
3
|
-
* "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame
|
|
4
|
-
* an interval; everything visible derives deterministically from
|
|
5
|
-
* here (hash-based, no Math.random), so the whole sequence is
|
|
6
|
-
* without a renderer and identical across runs.
|
|
2
|
+
* Splash "waking mind" animation — pure frame math for the welcome card's
|
|
3
|
+
* block "apollo" mark. The component (ui/SplashCard.tsx) ticks a frame
|
|
4
|
+
* counter on an interval; everything visible derives deterministically from
|
|
5
|
+
* that number here (hash-based, no Math.random), so the whole sequence is
|
|
6
|
+
* unit-testable without a renderer and identical across runs.
|
|
7
7
|
*
|
|
8
|
-
* Two layouts share the same
|
|
8
|
+
* Two layouts share the same cinematic:
|
|
9
9
|
*
|
|
10
|
-
* compact (44 wide) — the
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* compact (44 wide) — the seed, the particle assembly, orbiting
|
|
11
|
+
* satellites, the EEG wave strip, and twinkling
|
|
12
|
+
* gutter stars around the mark
|
|
13
|
+
* field (72 wide) — the full cortex: dendrites grow a synapse
|
|
14
|
+
* constellation out of the seed, thought pulses
|
|
15
|
+
* travel the graph and feed the word through ports,
|
|
16
|
+
* satellites orbit the mark, sonar pings sweep the
|
|
17
|
+
* canvas, and a code-rain whispers at the edges
|
|
16
18
|
*
|
|
17
|
-
* The
|
|
19
|
+
* The sequence (one tick = 80ms):
|
|
18
20
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
21
|
+
* seed f0–2 a single point of light pulses alone in the dark
|
|
22
|
+
* genesis f3–14 (field) dendrites shoot from the seed; each synapse
|
|
23
|
+
* node ignites the moment its filament arrives, then
|
|
24
|
+
* the scaffolding fades and the constellation remains
|
|
25
|
+
* assembly f3–31 letters stream out of the seed as bright particles,
|
|
26
|
+
* condense through half-block static, and flash into
|
|
27
|
+
* place left → right — the mind speaks the word
|
|
28
|
+
* shock f30–… a ring of light detonates from the word across the
|
|
29
|
+
* canvas; the border catches it as it passes
|
|
30
|
+
* alive f38+ aurora sweeps (mint → ice → violet), thought pulses
|
|
31
|
+
* with easing heads and fading tails, counter-orbiting
|
|
32
|
+
* satellites that pass behind the word, sonar pings
|
|
33
|
+
* every ~9s, a live EEG wave under the word that
|
|
34
|
+
* spikes as thoughts arrive, rare amber "insight"
|
|
35
|
+
* flashes, and one-frame glitch shimmers of light
|
|
36
|
+
* across the letters
|
|
37
|
+
* decode f10+ the subtitle types on through cycling static
|
|
27
38
|
*
|
|
28
39
|
* Colors are hex literals on the theme's teal axis (#4fb8b0 = TEAL,
|
|
29
40
|
* #2e6b66 = TEAL_DIM): the animated path only runs on unicode + color
|
|
@@ -35,32 +46,35 @@ export const TICK_MS = 80;
|
|
|
35
46
|
/** Compact card outer width (narrow terminals). */
|
|
36
47
|
export const CARD_WIDTH = 44;
|
|
37
48
|
/** Neural-field card outer width (roomy terminals). */
|
|
38
|
-
export const CARD_WIDTH_FIELD =
|
|
49
|
+
export const CARD_WIDTH_FIELD = 72;
|
|
39
50
|
const INNER_COMPACT = CARD_WIDTH - 2;
|
|
40
51
|
const INNER_FIELD = CARD_WIDTH_FIELD - 2;
|
|
41
52
|
const SCRAMBLE = "▖▗▘▝▚▞";
|
|
42
53
|
const DECODE = "░▒∙·";
|
|
43
|
-
/**
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
"▄": "▀",
|
|
47
|
-
"▘": "▖",
|
|
48
|
-
"▖": "▘",
|
|
49
|
-
"▝": "▗",
|
|
50
|
-
"▗": "▝",
|
|
51
|
-
"▚": "▞",
|
|
52
|
-
"▞": "▚",
|
|
53
|
-
"█": "█",
|
|
54
|
-
};
|
|
55
|
-
/** Crest color per sweep — mint, ice, violet, then around again. */
|
|
54
|
+
/** EEG wave levels, quiet → spike (block eighths render wherever ▀▄█ do). */
|
|
55
|
+
const WAVE_GLYPHS = "▁▂▃▄▅▆▇";
|
|
56
|
+
/** Crest color per aurora sweep — mint, ice, violet, then around again. */
|
|
56
57
|
const AURORA = ["#f2fffd", "#bfe8ff", "#d9c9ff"];
|
|
58
|
+
// The dark→bright ramp the show draws with. Everything below DIM_T is
|
|
59
|
+
// "chrome" — the word and the moving lights get the bright half.
|
|
60
|
+
const BG = "#143430"; // blank-cell tone (keeps chunk runs merged)
|
|
61
|
+
const TROUGH = "#0f2a27"; // EEG at rest
|
|
62
|
+
const GHOST = "#16413c"; // faintest chrome: link dots, rain tails, ring echoes
|
|
63
|
+
const FAINT_T = "#1b4a45"; // pulse tails, orbital wake
|
|
64
|
+
const IDLE = "#1f524d"; // idle synapse ring, rain heads
|
|
65
|
+
const DIM_T = "#2e6b66"; // = TEAL_DIM token
|
|
66
|
+
const MID_T = "#3e938c"; // border breathe high, wave spikes
|
|
67
|
+
const BASE_T = "#4fb8b0"; // = TEAL token
|
|
68
|
+
const MINT = "#8ff2e9"; // highlights, pulse heads, satellite
|
|
69
|
+
const HOT = "#f2fffd"; // flashes, impacts, the seed
|
|
70
|
+
const EMBER = "#ffd9a0"; // rare insight flash — the only warm accent
|
|
57
71
|
/**
|
|
58
72
|
* The splash's own glyph face: 4×6-pixel letters (4 cols × 3 half-block
|
|
59
73
|
* rows) covering what "apollo" needs. @opentui/core's tiny face is only two
|
|
60
|
-
* rows tall — at card size the word read as a thin ribbon, and the
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
74
|
+
* rows tall — at card size the word read as a thin ribbon, and the effects
|
|
75
|
+
* would overwhelm it. Heavier full-block strokes keep the word legible
|
|
76
|
+
* while the show plays. Only block elements (▀▄█) are used, so the face
|
|
77
|
+
* renders wherever the wave strip and scramble static do (asserted in
|
|
64
78
|
* tests/wordmark.test.ts).
|
|
65
79
|
*/
|
|
66
80
|
export const APOLLO_CHARS = {
|
|
@@ -70,24 +84,34 @@ export const APOLLO_CHARS = {
|
|
|
70
84
|
L: ["█ ", "█ ", "█▄▄▄"],
|
|
71
85
|
" ": [" ", " ", " "],
|
|
72
86
|
};
|
|
73
|
-
|
|
74
|
-
const
|
|
87
|
+
// Timeline (frames). The intro runs ~2.6s, then the canvas lives forever.
|
|
88
|
+
const SEED_DELAY = 12; // seed pulses alone before letters stream out
|
|
89
|
+
const IGNITE_SPAN = 14; // frames for the birth front to cross the mark
|
|
90
|
+
const FLIGHT = 9; // pre-birth runway: particle flight, then static
|
|
91
|
+
const LEAD = 4; // condensing static frames before a cell snaps
|
|
75
92
|
const FLASH = 2; // bright frames as it snaps
|
|
76
|
-
const
|
|
93
|
+
const ASSEMBLY_END = SEED_DELAY + IGNITE_SPAN + 3 + FLASH + 1; // bbox seals
|
|
94
|
+
const SEED_END = SEED_DELAY + Math.round(IGNITE_SPAN / 2) + 2; // word swallows it
|
|
95
|
+
const SHOCK_AT = ASSEMBLY_END - 2; // shockwave as the last cells land
|
|
96
|
+
const TYPE_START = 10; // subtitle decoding begins mid-assembly
|
|
77
97
|
const CARET_BLINKS = 24; // frames the caret lingers after the line locks
|
|
78
|
-
const WAVE_START =
|
|
98
|
+
const WAVE_START = 38; // first aurora sweep after the shock clears
|
|
79
99
|
const WAVE_PERIOD = 44; // frames from one sweep start to the next
|
|
80
100
|
const WAVE_LEN = 22; // frames a sweep takes to cross the mark
|
|
81
101
|
const SPARK_PERIOD = 16; // one glint window per period, most stay empty
|
|
102
|
+
const PING_PERIOD = 110; // sonar ping of the living mind (~9s)
|
|
103
|
+
const ORBIT_PERIOD = 56; // satellite lap time (~4.5s)
|
|
104
|
+
const INSIGHT_PERIOD = 128; // one amber node flash per window (~10s)
|
|
105
|
+
const GLITCH_PERIOD = 48; // glitch shimmer window (1 in 4 fire, 2 frames)
|
|
82
106
|
const REST = 0.35; // gradient position of the resting base (= TEAL)
|
|
83
107
|
// Neural field geometry and rhythm.
|
|
84
|
-
const FIELD_ROWS_TOP =
|
|
85
|
-
const FIELD_ROWS_BOTTOM =
|
|
86
|
-
const NODE_COUNT =
|
|
87
|
-
const LINK_COUNT =
|
|
108
|
+
const FIELD_ROWS_TOP = 3; // canvas rows above the mark
|
|
109
|
+
const FIELD_ROWS_BOTTOM = 2; // canvas rows below the wave strip
|
|
110
|
+
const NODE_COUNT = 14;
|
|
111
|
+
const LINK_COUNT = 9;
|
|
88
112
|
const PULSE_TRAVEL = 18; // frames a pulse takes to cross its link
|
|
89
|
-
const
|
|
90
|
-
const LINKS_WAKE =
|
|
113
|
+
const DENDRITES_START = 3; // filaments grow after the seed's first pulse
|
|
114
|
+
const LINKS_WAKE = 18; // constellation dots + code rain follow ignition
|
|
91
115
|
const PULSES_WAKE = WAVE_START; // thoughts start with the first sweep
|
|
92
116
|
/** Deterministic 32-bit hash — the animation's only source of "randomness". */
|
|
93
117
|
function hash(n) {
|
|
@@ -150,7 +174,7 @@ export function wordGrid(word, chars) {
|
|
|
150
174
|
/** Frame when the cell at (row, col) snaps from static to its real glyph. */
|
|
151
175
|
function birthAt(row, col, cols) {
|
|
152
176
|
const sweep = Math.round((col / Math.max(cols - 1, 1)) * IGNITE_SPAN);
|
|
153
|
-
return sweep + (hash(col * 31 + row * 17) % 4);
|
|
177
|
+
return SEED_DELAY + sweep + (hash(col * 31 + row * 17) % 4);
|
|
154
178
|
}
|
|
155
179
|
/** Merge a cell run into chunks; spaces adopt the current color to merge. */
|
|
156
180
|
function toChunks(cells) {
|
|
@@ -181,7 +205,7 @@ function fieldNodes(rows, colsTotal, excluded) {
|
|
|
181
205
|
const y = hash(i * 43 + attempt * 89 + 7) % rows;
|
|
182
206
|
if (excluded(x, y))
|
|
183
207
|
continue;
|
|
184
|
-
if (nodes.some((n) => Math.abs(n.x - x) + Math.abs(n.y - y) * 3 <
|
|
208
|
+
if (nodes.some((n) => Math.abs(n.x - x) + Math.abs(n.y - y) * 3 < 7))
|
|
185
209
|
continue;
|
|
186
210
|
placed = { x, y };
|
|
187
211
|
}
|
|
@@ -193,14 +217,20 @@ function fieldNodes(rows, colsTotal, excluded) {
|
|
|
193
217
|
/** Compute one full frame of the splash from a tick counter. */
|
|
194
218
|
export function splashFrame(frame, grid, subtitle, field = false) {
|
|
195
219
|
const inner = field ? INNER_FIELD : INNER_COMPACT;
|
|
220
|
+
const gridRows = grid.length;
|
|
196
221
|
const cols = grid.reduce((w, line) => Math.max(w, line.length), 0);
|
|
197
222
|
const leftPad = Math.max(Math.floor((inner - cols) / 2), 0);
|
|
198
|
-
const
|
|
223
|
+
const markTop = field ? FIELD_ROWS_TOP : 0;
|
|
224
|
+
const waveRow = markTop + gridRows;
|
|
225
|
+
const canvasRows = waveRow + 1 + (field ? FIELD_ROWS_BOTTOM : 0);
|
|
226
|
+
// The seed — where the word streams out of, and every ring's origin.
|
|
227
|
+
const cx = leftPad + (cols - 1) / 2;
|
|
228
|
+
const cy = markTop + (gridRows - 1) / 2;
|
|
199
229
|
// Aurora band: alternating direction, crest color cycling per sweep.
|
|
200
230
|
const sweepIdx = frame >= WAVE_START ? Math.floor((frame - WAVE_START) / WAVE_PERIOD) : -1;
|
|
201
231
|
const phase = frame >= WAVE_START ? (frame - WAVE_START) % WAVE_PERIOD : -1;
|
|
202
232
|
const sweeping = phase >= 0 && phase < WAVE_LEN;
|
|
203
|
-
const crest = AURORA[((sweepIdx % AURORA.length) + AURORA.length) % AURORA.length] ??
|
|
233
|
+
const crest = AURORA[((sweepIdx % AURORA.length) + AURORA.length) % AURORA.length] ?? HOT;
|
|
204
234
|
let center = 0;
|
|
205
235
|
if (sweeping) {
|
|
206
236
|
const u = phase / WAVE_LEN;
|
|
@@ -214,6 +244,14 @@ export function splashFrame(frame, grid, subtitle, field = false) {
|
|
|
214
244
|
const d = col + row * 2 - center;
|
|
215
245
|
return Math.exp(-(d * d) / (2 * 2.4 * 2.4));
|
|
216
246
|
};
|
|
247
|
+
// Birth frame per glyph cell (-1 for gaps) — the assembly's choreography.
|
|
248
|
+
const born = grid.map((line, row) => {
|
|
249
|
+
const out = [];
|
|
250
|
+
for (let col = 0; col < cols; col++) {
|
|
251
|
+
out.push(line.charAt(col) !== " " && col < line.length ? birthAt(row, col, cols) : -1);
|
|
252
|
+
}
|
|
253
|
+
return out;
|
|
254
|
+
});
|
|
217
255
|
// Glints: at most one lit cell, two frames long, in a third of the windows.
|
|
218
256
|
const filled = [];
|
|
219
257
|
grid.forEach((line, row) => {
|
|
@@ -229,39 +267,131 @@ export function splashFrame(frame, grid, subtitle, field = false) {
|
|
|
229
267
|
hash(sparkWindow) % 3 === 0;
|
|
230
268
|
const spark = sparkOn ? filled[hash(sparkWindow * 7 + 1) % filled.length] : undefined;
|
|
231
269
|
// ------------------------------------------------------------------ //
|
|
232
|
-
//
|
|
233
|
-
//
|
|
270
|
+
// The canvas. Both layouts draw into it back-to-front; the wordmark is
|
|
271
|
+
// placed last so it always wins its own cells. Until the assembly seals,
|
|
272
|
+
// particles may fly through the mark's bounding box; afterwards it is a
|
|
273
|
+
// sanctuary nothing may stamp into — the word floats in negative space.
|
|
234
274
|
// ------------------------------------------------------------------ //
|
|
275
|
+
const canvas = Array.from({ length: canvasRows }, () => Array.from({ length: inner }, () => ({ ch: " ", fg: BG })));
|
|
276
|
+
const inSanctuary = (py, px) => py >= markTop && py < waveRow && px >= leftPad - 1 && px <= leftPad + cols;
|
|
277
|
+
const stamp = (x, y, ch, fg, over = false) => {
|
|
278
|
+
const px = Math.round(x);
|
|
279
|
+
const py = Math.round(y);
|
|
280
|
+
if (py < 0 || py >= canvasRows || px < 0 || px >= inner)
|
|
281
|
+
return;
|
|
282
|
+
if (frame >= ASSEMBLY_END && inSanctuary(py, px))
|
|
283
|
+
return;
|
|
284
|
+
const rowArr = canvas[py];
|
|
285
|
+
if (!rowArr)
|
|
286
|
+
return;
|
|
287
|
+
const cell = rowArr[px];
|
|
288
|
+
if (!cell)
|
|
289
|
+
return;
|
|
290
|
+
if (!over && cell.ch !== " ")
|
|
291
|
+
return;
|
|
292
|
+
rowArr[px] = { ch, fg };
|
|
293
|
+
};
|
|
294
|
+
/** Like stamp, but never enters the mark's box — even during assembly.
|
|
295
|
+
* For standing chrome (link dots, rings) that would read as dirt between
|
|
296
|
+
* the forming letters; transient movers may still fly through. */
|
|
297
|
+
const stampClear = (x, y, ch, fg, over = false) => {
|
|
298
|
+
if (inSanctuary(Math.round(y), Math.round(x)))
|
|
299
|
+
return;
|
|
300
|
+
stamp(x, y, ch, fg, over);
|
|
301
|
+
};
|
|
302
|
+
// Per-column surge the wordmark and the wave strip both read: arriving
|
|
303
|
+
// thoughts (field mode) push energy into the letters above their port.
|
|
235
304
|
const excite = Array.from({ length: cols }, () => 0);
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
if (canvas) {
|
|
243
|
-
const stamp = (x, y, ch, fg) => {
|
|
244
|
-
const cx = Math.round(x);
|
|
245
|
-
const cy = Math.round(y);
|
|
246
|
-
if (cy < 0 || cy >= canvas.length)
|
|
247
|
-
return;
|
|
248
|
-
const rowArr = canvas[cy];
|
|
249
|
-
if (!rowArr || cx < 0 || cx >= rowArr.length)
|
|
250
|
-
return;
|
|
251
|
-
// Never draw over the mark or its water — pulses pass behind the word.
|
|
252
|
-
if (cy >= markTop && cy <= reflRow && cx >= leftPad - 1 && cx <= leftPad + cols)
|
|
253
|
-
return;
|
|
254
|
-
rowArr[cx] = { ch, fg };
|
|
255
|
-
};
|
|
256
|
-
const nodeExcluded = (x, y) => y >= markTop && y <= reflRow && x >= leftPad - 2 && x <= leftPad + cols + 1;
|
|
305
|
+
if (field) {
|
|
306
|
+
// -------------------------------------------------------------- //
|
|
307
|
+
// Synapse constellation: nodes off the mark and the wave strip.
|
|
308
|
+
// -------------------------------------------------------------- //
|
|
309
|
+
const nodeExcluded = (x, y) => y === waveRow ||
|
|
310
|
+
(y >= markTop && y <= waveRow && x >= leftPad - 2 && x <= leftPad + cols + 1);
|
|
257
311
|
const nodes = fieldNodes(canvasRows, inner, nodeExcluded);
|
|
258
312
|
const nodeAt = (i) => nodes[i % nodes.length] ?? { x: 0, y: 0 };
|
|
313
|
+
/** Frame this node's dendrite arrives and the synapse ignites. */
|
|
314
|
+
const reachAt = (i) => 6 + (hash(i * 19 + 7) % 9);
|
|
315
|
+
// Code rain: one faint bit-stream falling inside each card edge.
|
|
316
|
+
if (frame >= LINKS_WAKE) {
|
|
317
|
+
for (const side of [0, 1]) {
|
|
318
|
+
const x = side === 0 ? 2 : inner - 3;
|
|
319
|
+
const cycle = canvasRows + 5;
|
|
320
|
+
const fall = Math.floor(frame / 2) + (hash(side * 7 + 3) % cycle);
|
|
321
|
+
const head = (fall % cycle) - 2;
|
|
322
|
+
const lap = Math.floor(fall / cycle);
|
|
323
|
+
for (let k = 0; k < 3; k++) {
|
|
324
|
+
const y = head - k;
|
|
325
|
+
const bit = hash(y * 11 + side * 5 + lap * 3) % 2;
|
|
326
|
+
stamp(x, y, k === 0 ? String(bit) : "·", k === 0 ? IDLE : GHOST);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
// Genesis: dendrites grow from the seed to every node; the filament is
|
|
331
|
+
// scaffolding — it fades right after its synapse ignites.
|
|
332
|
+
nodes.forEach((n, i) => {
|
|
333
|
+
const reach = reachAt(i);
|
|
334
|
+
const grow0 = DENDRITES_START + (hash(i * 5 + 1) % 3);
|
|
335
|
+
if (frame >= grow0 && frame <= reach + 4 && reach > grow0) {
|
|
336
|
+
const u = Math.min((frame - grow0) / (reach - grow0), 1);
|
|
337
|
+
const fade = frame <= reach ? 1 : (reach + 4 - frame) / 4;
|
|
338
|
+
const dx = n.x - cx;
|
|
339
|
+
const dy = n.y - cy;
|
|
340
|
+
const steps = Math.ceil(Math.max(Math.abs(dx), Math.abs(dy) * 2, 1) / 1.6);
|
|
341
|
+
for (let s = 1; s <= Math.floor(steps * u); s++) {
|
|
342
|
+
const t = s / steps;
|
|
343
|
+
stamp(cx + dx * t, cy + dy * t, s % 2 === 0 ? "∙" : "·", fade > 0.6 ? FAINT_T : GHOST);
|
|
344
|
+
}
|
|
345
|
+
if (frame < reach)
|
|
346
|
+
stamp(cx + dx * u, cy + dy * u, "✦", MINT, true);
|
|
347
|
+
}
|
|
348
|
+
// The synapse itself: ignition flash → mint afterglow → idle shimmer,
|
|
349
|
+
// with one amber "insight" flash somewhere in the field every ~10s.
|
|
350
|
+
if (frame >= reach) {
|
|
351
|
+
const age = frame - reach;
|
|
352
|
+
if (age < 2) {
|
|
353
|
+
stamp(n.x, n.y, "✦", HOT, true);
|
|
354
|
+
}
|
|
355
|
+
else if (age < 4) {
|
|
356
|
+
stamp(n.x, n.y, "●", MINT, true);
|
|
357
|
+
}
|
|
358
|
+
else {
|
|
359
|
+
const iw = Math.floor(frame / INSIGHT_PERIOD);
|
|
360
|
+
const insight = hash(iw * 13 + 5) % NODE_COUNT === i && frame % INSIGHT_PERIOD < 3;
|
|
361
|
+
if (insight) {
|
|
362
|
+
stamp(n.x, n.y, "✦", EMBER, true);
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
const period = 18 + (hash(i * 3 + 2) % 14);
|
|
366
|
+
const tw = (frame + hash(i * 29 + 4)) % period;
|
|
367
|
+
const active = tw < 3;
|
|
368
|
+
stamp(n.x, n.y, active ? "●" : "○", active ? DIM_T : IDLE, true);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
// Links prefer near neighbors (of three hash candidates) so the graph
|
|
374
|
+
// reads as a web, not spaghetti; a few long hauls survive for drama.
|
|
375
|
+
const dist2 = (a, b) => {
|
|
376
|
+
const dx = a.x - b.x;
|
|
377
|
+
const dy = (a.y - b.y) * 2;
|
|
378
|
+
return dx * dx + dy * dy;
|
|
379
|
+
};
|
|
259
380
|
const links = Array.from({ length: LINK_COUNT }, (_v, i) => {
|
|
260
381
|
const a = hash(i * 91 + 3) % NODE_COUNT;
|
|
261
|
-
|
|
382
|
+
let best = (a + 1) % NODE_COUNT;
|
|
383
|
+
let bestD = Infinity;
|
|
384
|
+
for (let c = 0; c < 3; c++) {
|
|
385
|
+
const cand = (a + 1 + (hash(i * 17 + c * 7 + 5) % (NODE_COUNT - 1))) % NODE_COUNT;
|
|
386
|
+
const d = dist2(nodeAt(a), nodeAt(cand));
|
|
387
|
+
if (cand !== a && d < bestD) {
|
|
388
|
+
best = cand;
|
|
389
|
+
bestD = d;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
262
392
|
return {
|
|
263
393
|
from: nodeAt(a),
|
|
264
|
-
to: nodeAt(
|
|
394
|
+
to: nodeAt(best),
|
|
265
395
|
period: 34 + (hash(i * 29 + 1) % 26),
|
|
266
396
|
phase: hash(i * 61 + 9) % 60,
|
|
267
397
|
port: -1,
|
|
@@ -284,27 +414,23 @@ export function splashFrame(frame, grid, subtitle, field = false) {
|
|
|
284
414
|
phase: hash(i * 53 + 17) % 80,
|
|
285
415
|
port: def.logoCol,
|
|
286
416
|
}));
|
|
287
|
-
|
|
417
|
+
const wires = [...links, ...portLinks];
|
|
418
|
+
// Constellation: three faint dots hint at each link's path; roughly one
|
|
419
|
+
// link per window "fires", its whole path lifting for two frames.
|
|
288
420
|
if (frame >= LINKS_WAKE) {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
421
|
+
const fireWin = Math.floor(frame / 90);
|
|
422
|
+
wires.forEach((link, li) => {
|
|
423
|
+
const firing = hash(fireWin * 31 + li * 7) % wires.length === li && frame % 90 < 2;
|
|
424
|
+
for (const u of [0.3, 0.5, 0.7]) {
|
|
425
|
+
stampClear(link.from.x + (link.to.x - link.from.x) * u, link.from.y + (link.to.y - link.from.y) * u, "·", firing ? DIM_T : GHOST);
|
|
292
426
|
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
// Nodes idle-shimmer on their own cycles.
|
|
296
|
-
if (frame >= NODES_WAKE) {
|
|
297
|
-
nodes.forEach((n, id) => {
|
|
298
|
-
const period = 18 + (hash(id * 3 + 2) % 14);
|
|
299
|
-
const tw = (frame + hash(id * 29 + 4)) % period;
|
|
300
|
-
const active = tw < 3;
|
|
301
|
-
stamp(n.x, n.y, active ? "●" : "○", active ? "#2e6b66" : "#1f524d");
|
|
302
427
|
});
|
|
303
428
|
}
|
|
304
429
|
// Pulses: a bright head with a fading tail, smoothstepped along the
|
|
305
|
-
// link
|
|
430
|
+
// link. Port pulses excite the mark as they arrive and flash on impact;
|
|
431
|
+
// node-to-node pulses flash the receiving synapse instead.
|
|
306
432
|
if (frame >= PULSES_WAKE) {
|
|
307
|
-
for (const link of
|
|
433
|
+
for (const link of wires) {
|
|
308
434
|
const tick = (frame + link.phase) % link.period;
|
|
309
435
|
if (tick < PULSE_TRAVEL) {
|
|
310
436
|
const at = (u) => ({
|
|
@@ -312,17 +438,17 @@ export function splashFrame(frame, grid, subtitle, field = false) {
|
|
|
312
438
|
y: link.from.y + (link.to.y - link.from.y) * ease(u),
|
|
313
439
|
});
|
|
314
440
|
const head = at(tick / PULSE_TRAVEL);
|
|
315
|
-
stamp(head.x, head.y, "•", sweeping ? crest :
|
|
441
|
+
stamp(head.x, head.y, "•", sweeping ? crest : MINT, true);
|
|
316
442
|
if (tick >= 2) {
|
|
317
443
|
const trail = at((tick - 1.5) / PULSE_TRAVEL);
|
|
318
|
-
stamp(trail.x, trail.y, "∙",
|
|
444
|
+
stamp(trail.x, trail.y, "∙", DIM_T, true);
|
|
319
445
|
}
|
|
320
446
|
if (tick >= 4) {
|
|
321
447
|
const tail = at((tick - 3) / PULSE_TRAVEL);
|
|
322
|
-
stamp(tail.x, tail.y, "·",
|
|
448
|
+
stamp(tail.x, tail.y, "·", FAINT_T);
|
|
323
449
|
}
|
|
324
450
|
if (tick < 2)
|
|
325
|
-
stamp(link.from.x, link.from.y, "✦",
|
|
451
|
+
stamp(link.from.x, link.from.y, "✦", HOT, true);
|
|
326
452
|
}
|
|
327
453
|
if (link.port >= 0) {
|
|
328
454
|
// Arrival glow: swells just before impact, decays just after.
|
|
@@ -336,132 +462,213 @@ export function splashFrame(frame, grid, subtitle, field = false) {
|
|
|
336
462
|
}
|
|
337
463
|
}
|
|
338
464
|
if (arr >= 0 && arr < 2)
|
|
339
|
-
stamp(link.to.x, link.to.y, "✦",
|
|
465
|
+
stamp(link.to.x, link.to.y, "✦", HOT, true);
|
|
340
466
|
}
|
|
341
467
|
}
|
|
468
|
+
else {
|
|
469
|
+
const arr = tick - PULSE_TRAVEL;
|
|
470
|
+
if (arr >= 0 && arr < 2)
|
|
471
|
+
stamp(link.to.x, link.to.y, "✦", sweeping ? crest : MINT, true);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
// The seed: a lone heartbeat of light where the word will stand. It dies
|
|
477
|
+
// the moment the word's center solidifies around it — swallowed whole.
|
|
478
|
+
if (frame < SEED_END) {
|
|
479
|
+
const ph = frame % 6;
|
|
480
|
+
stamp(cx, cy, ph < 2 ? "✦" : ph < 4 ? "●" : "∙", ph < 2 ? HOT : MINT, true);
|
|
481
|
+
}
|
|
482
|
+
// Assembly: every letter cell streams out of the seed as a particle,
|
|
483
|
+
// easing toward its slot, then hands off to the condensing static.
|
|
484
|
+
if (frame < ASSEMBLY_END) {
|
|
485
|
+
grid.forEach((line, row) => {
|
|
486
|
+
for (let col = 0; col < line.length; col++) {
|
|
487
|
+
const b = born[row]?.[col] ?? -1;
|
|
488
|
+
if (b < 0)
|
|
489
|
+
continue;
|
|
490
|
+
const start = b - FLIGHT;
|
|
491
|
+
const land = b - LEAD;
|
|
492
|
+
if (frame < start || frame >= land)
|
|
493
|
+
continue;
|
|
494
|
+
const u = ease((frame - start) / (FLIGHT - LEAD));
|
|
495
|
+
const x = cx + (leftPad + col - cx) * u;
|
|
496
|
+
const y = cy + (markTop + row - cy) * u;
|
|
497
|
+
stamp(x, y, u < 0.45 ? "∙" : "•", u < 0.45 ? HOT : MINT, true);
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
// Shock rings and sonar pings: expanding ellipses from the seed. The
|
|
502
|
+
// shock detonates as the word locks; pings echo it every ~9s after.
|
|
503
|
+
const ringRs = [];
|
|
504
|
+
if (field) {
|
|
505
|
+
const rings = [
|
|
506
|
+
{ t0: SHOCK_AT, shock: true },
|
|
507
|
+
{ t0: SHOCK_AT + 3, shock: true },
|
|
508
|
+
];
|
|
509
|
+
const pinged = frame - (SHOCK_AT + 20);
|
|
510
|
+
if (pinged >= 0) {
|
|
511
|
+
rings.push({ t0: SHOCK_AT + 20 + Math.floor(pinged / PING_PERIOD) * PING_PERIOD, shock: false });
|
|
512
|
+
}
|
|
513
|
+
const rMax = inner * 0.6;
|
|
514
|
+
for (const ring of rings) {
|
|
515
|
+
const age = frame - ring.t0;
|
|
516
|
+
if (age < 0)
|
|
517
|
+
continue;
|
|
518
|
+
const r = age * 1.9 + 0.5;
|
|
519
|
+
if (r > rMax)
|
|
520
|
+
continue;
|
|
521
|
+
ringRs.push(r);
|
|
522
|
+
const u = r / rMax;
|
|
523
|
+
const ch = u < 0.3 ? "○" : u < 0.65 ? "∘" : "·";
|
|
524
|
+
const fg = ring.shock
|
|
525
|
+
? u < 0.3
|
|
526
|
+
? MINT
|
|
527
|
+
: u < 0.65
|
|
528
|
+
? DIM_T
|
|
529
|
+
: GHOST
|
|
530
|
+
: u < 0.4
|
|
531
|
+
? DIM_T
|
|
532
|
+
: GHOST;
|
|
533
|
+
for (let y = 0; y < canvasRows; y++) {
|
|
534
|
+
if (y === waveRow)
|
|
535
|
+
continue;
|
|
536
|
+
const wy = (y - cy) * 2.6;
|
|
537
|
+
for (let x = 0; x < inner; x++) {
|
|
538
|
+
const d = Math.sqrt((x - cx) * (x - cx) + wy * wy);
|
|
539
|
+
if (Math.abs(d - r) < 1.1)
|
|
540
|
+
stampClear(x, y, ch, fg);
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
// Compact gutters: twinkling stars beside the mark once the show settles.
|
|
546
|
+
if (!field && frame >= WAVE_START - 6) {
|
|
547
|
+
for (let row = 0; row < gridRows; row++) {
|
|
548
|
+
for (let k = 0; k < 2; k++) {
|
|
549
|
+
for (const side of [0, 1]) {
|
|
550
|
+
const padWidth = side === 0 ? leftPad : inner - leftPad - cols;
|
|
551
|
+
if (padWidth < 3)
|
|
552
|
+
continue;
|
|
553
|
+
const id = side * 16 + row * 2 + k;
|
|
554
|
+
const colIn = hash(id * 97 + 5) % (padWidth - 1);
|
|
555
|
+
const x = side === 0 ? colIn : leftPad + cols + colIn;
|
|
556
|
+
const period = 20 + (hash(id * 7 + 3) % 16);
|
|
557
|
+
const tick = (frame + hash(id * 13 + 1)) % period;
|
|
558
|
+
if (tick < 2)
|
|
559
|
+
stamp(x, markTop + row, "✦", MINT);
|
|
560
|
+
else if (tick < 4)
|
|
561
|
+
stamp(x, markTop + row, "·", DIM_T);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
// EEG wave strip: the mind's live trace under the word. It idles as a
|
|
567
|
+
// slow interference ripple, lifts under the aurora, jumps where rings
|
|
568
|
+
// cross it, and spikes hard beneath arriving thoughts.
|
|
569
|
+
const waveArr = canvas[waveRow];
|
|
570
|
+
if (waveArr) {
|
|
571
|
+
const wake = Math.min(Math.max((frame - SEED_DELAY) / 20, 0.12), 1);
|
|
572
|
+
for (let x = 0; x < inner; x++) {
|
|
573
|
+
const logoCol = Math.min(Math.max(x - leftPad, 0), cols - 1);
|
|
574
|
+
const outside = x < leftPad ? leftPad - x : x >= leftPad + cols ? x - (leftPad + cols - 1) : 0;
|
|
575
|
+
const e = (excite[logoCol] ?? 0) * Math.exp(-(outside * outside) / 40);
|
|
576
|
+
const base = 0.5 + 0.5 * Math.sin(frame / 5 + x / 2.6 + 0.8 * Math.sin(x / 9 - frame / 13));
|
|
577
|
+
let v = 0.08 + 0.38 * base * wake + 0.55 * Math.min(e, 1) + 0.3 * bandAt(x - leftPad, 1);
|
|
578
|
+
for (const r of ringRs) {
|
|
579
|
+
const d = Math.abs(x - cx) - r;
|
|
580
|
+
v += 0.4 * Math.exp(-(d * d) / 8);
|
|
342
581
|
}
|
|
582
|
+
v = Math.min(Math.max(v, 0.02), 1);
|
|
583
|
+
// Quantize the tone so neighboring cells merge into color runs.
|
|
584
|
+
const q = Math.round(v * 8) / 8;
|
|
585
|
+
const lvl = Math.min(Math.floor(v * WAVE_GLYPHS.length), WAVE_GLYPHS.length - 1);
|
|
586
|
+
const fg = q < 0.4
|
|
587
|
+
? lerpHex(TROUGH, FAINT_T, q / 0.4)
|
|
588
|
+
: q < 0.75
|
|
589
|
+
? lerpHex(FAINT_T, DIM_T, (q - 0.4) / 0.35)
|
|
590
|
+
: lerpHex(DIM_T, MID_T, (q - 0.75) / 0.25);
|
|
591
|
+
waveArr[x] = { ch: WAVE_GLYPHS.charAt(lvl), fg };
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
// Satellites: two counter-orbiting lights on an ellipse around the word —
|
|
595
|
+
// they pass in front of the wave strip and vanish behind the mark.
|
|
596
|
+
if (frame >= SHOCK_AT) {
|
|
597
|
+
const a = cols / 2 + (field ? 5 : 3.5);
|
|
598
|
+
const b = field ? 2.6 : 1.7;
|
|
599
|
+
for (const s of [0, 1]) {
|
|
600
|
+
const dir = s === 0 ? 1 : -1;
|
|
601
|
+
const orbit = (f) => {
|
|
602
|
+
const ang = ((f * dir) / ORBIT_PERIOD + s * 0.5) * Math.PI * 2;
|
|
603
|
+
return { x: cx + a * Math.cos(ang), y: cy + b * Math.sin(ang) };
|
|
604
|
+
};
|
|
605
|
+
const p2 = orbit(frame - 3.2);
|
|
606
|
+
stamp(p2.x, p2.y, "·", FAINT_T);
|
|
607
|
+
const p1 = orbit(frame - 1.6);
|
|
608
|
+
stamp(p1.x, p1.y, "∙", DIM_T);
|
|
609
|
+
const p0 = orbit(frame);
|
|
610
|
+
stamp(p0.x, p0.y, "✦", sweeping ? crest : MINT, true);
|
|
343
611
|
}
|
|
344
612
|
}
|
|
613
|
+
// Wordmark color: the base breathes around REST; the aurora lifts it to
|
|
614
|
+
// the crest, arriving thoughts surge the nearby columns, and a rare
|
|
615
|
+
// glitch shimmer washes a five-column slice for two frames.
|
|
616
|
+
const glitchWin = Math.floor(frame / GLITCH_PERIOD);
|
|
617
|
+
const glitchOn = frame >= WAVE_START && hash(glitchWin * 11 + 2) % 4 === 0 && frame % GLITCH_PERIOD < 2;
|
|
618
|
+
const glitchC0 = hash(glitchWin * 17 + 9) % Math.max(cols - 5, 1);
|
|
345
619
|
const colorAt = (row, col) => {
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
const t = REST +
|
|
349
|
-
0.05 * Math.sin(frame / 9 + col / 5 + row) +
|
|
620
|
+
let t = REST +
|
|
621
|
+
0.06 * Math.sin(frame / 9 + col / 5 + row) +
|
|
350
622
|
0.65 * bandAt(col, row) +
|
|
351
623
|
0.5 * Math.min(excite[col] ?? 0, 1);
|
|
624
|
+
if (glitchOn && col >= glitchC0 && col < glitchC0 + 5)
|
|
625
|
+
t += 0.4;
|
|
352
626
|
// Quantize so neighboring cells merge into longer same-color runs.
|
|
353
627
|
return gradientAt(Math.round(Math.min(Math.max(t, 0), 1) * 14) / 14, crest);
|
|
354
628
|
};
|
|
355
|
-
//
|
|
356
|
-
|
|
357
|
-
|
|
629
|
+
// The wordmark itself, placed last so it always wins its cells: flight is
|
|
630
|
+
// above (canvas particles), then condensing static, flash, settled glyph.
|
|
631
|
+
grid.forEach((line, row) => {
|
|
632
|
+
const rowArr = canvas[markTop + row];
|
|
633
|
+
if (!rowArr)
|
|
634
|
+
return;
|
|
358
635
|
for (let col = 0; col < line.length; col++) {
|
|
359
636
|
const glyph = line.charAt(col);
|
|
360
|
-
|
|
361
|
-
|
|
637
|
+
const target = leftPad + col;
|
|
638
|
+
if (target >= inner)
|
|
639
|
+
break;
|
|
640
|
+
if (glyph === " ")
|
|
362
641
|
continue;
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
else if (frame < born) {
|
|
369
|
-
cells.push({
|
|
642
|
+
const b = born[row]?.[col] ?? -1;
|
|
643
|
+
if (b < 0 || frame < b - LEAD)
|
|
644
|
+
continue;
|
|
645
|
+
if (frame < b) {
|
|
646
|
+
rowArr[target] = {
|
|
370
647
|
ch: SCRAMBLE.charAt(hash(frame * 97 + col * 13 + row * 7) % SCRAMBLE.length),
|
|
371
|
-
fg:
|
|
372
|
-
}
|
|
648
|
+
fg: frame % 2 === 0 ? BASE_T : DIM_T,
|
|
649
|
+
};
|
|
373
650
|
}
|
|
374
|
-
else if (frame <
|
|
375
|
-
|
|
376
|
-
}
|
|
377
|
-
else if (spark?.row === row && spark?.col === col) {
|
|
378
|
-
cells.push({ ch: glyph, fg: "#f2fffd" });
|
|
651
|
+
else if (frame < b + FLASH || (spark?.row === row && spark?.col === col)) {
|
|
652
|
+
rowArr[target] = { ch: glyph, fg: HOT };
|
|
379
653
|
}
|
|
380
654
|
else {
|
|
381
|
-
|
|
655
|
+
rowArr[target] = { ch: glyph, fg: colorAt(row, col) };
|
|
382
656
|
}
|
|
383
657
|
}
|
|
384
|
-
return cells;
|
|
385
|
-
});
|
|
386
|
-
// Reflection: the bottom row mirrored under the mark, rippling like water
|
|
387
|
-
// and lit faintly by the band. Kept sparse (under half the cells) and deep
|
|
388
|
-
// in the dark range so the water never competes with the letterforms.
|
|
389
|
-
const bottom = logo[logo.length - 1] ?? [];
|
|
390
|
-
const reflection = bottom.map((cell, col) => {
|
|
391
|
-
const mirrored = MIRROR[cell.ch] ?? " ";
|
|
392
|
-
const ripple = Math.sin(frame / 6 + col / 1.7 + (hash(col * 29) % 10) / 3);
|
|
393
|
-
if (mirrored === " " || ripple <= 0.2)
|
|
394
|
-
return { ch: " ", fg: "#143430" };
|
|
395
|
-
return {
|
|
396
|
-
ch: mirrored,
|
|
397
|
-
fg: lerpHex("#0f2a27", "#245852", Math.min(bandAt(col, 2), 0.8)),
|
|
398
|
-
};
|
|
399
658
|
});
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
const rowArr = canvas[markTop + row];
|
|
405
|
-
if (!rowArr)
|
|
406
|
-
return;
|
|
407
|
-
cells.forEach((cell, col) => {
|
|
408
|
-
rowArr[leftPad + col] = cell;
|
|
409
|
-
});
|
|
410
|
-
});
|
|
411
|
-
const reflArr = canvas[reflRow];
|
|
412
|
-
if (reflArr) {
|
|
413
|
-
reflection.forEach((cell, col) => {
|
|
414
|
-
reflArr[leftPad + col] = cell;
|
|
415
|
-
});
|
|
416
|
-
}
|
|
417
|
-
rows = canvas.map(toChunks);
|
|
418
|
-
}
|
|
419
|
-
else {
|
|
420
|
-
// Compact: star gutters beside the mark, reflection underneath.
|
|
421
|
-
const gutters = grid.map((_line, row) => {
|
|
422
|
-
const left = Array.from({ length: leftPad }, () => ({ ch: " ", fg: "#4fb8b0" }));
|
|
423
|
-
const right = Array.from({ length: rightPad }, () => ({ ch: " ", fg: "#4fb8b0" }));
|
|
424
|
-
if (frame >= WAVE_START - 4) {
|
|
425
|
-
for (let k = 0; k < 2; k++) {
|
|
426
|
-
for (const [side, cellsSide, padWidth] of [
|
|
427
|
-
[0, left, leftPad],
|
|
428
|
-
[1, right, rightPad],
|
|
429
|
-
]) {
|
|
430
|
-
if (padWidth < 3)
|
|
431
|
-
continue;
|
|
432
|
-
const id = side * 16 + row * 2 + k;
|
|
433
|
-
const col = hash(id * 97 + 5) % (padWidth - 1);
|
|
434
|
-
const period = 20 + (hash(id * 7 + 3) % 16);
|
|
435
|
-
const tick = (frame + hash(id * 13 + 1)) % period;
|
|
436
|
-
const cell = cellsSide[col];
|
|
437
|
-
if (cell === undefined)
|
|
438
|
-
continue;
|
|
439
|
-
if (tick < 2) {
|
|
440
|
-
cell.ch = "✦";
|
|
441
|
-
cell.fg = "#8ff2e9";
|
|
442
|
-
}
|
|
443
|
-
else if (tick < 4) {
|
|
444
|
-
cell.ch = "·";
|
|
445
|
-
cell.fg = "#2e6b66";
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
return [left, right];
|
|
451
|
-
});
|
|
452
|
-
const pad = (width) => Array.from({ length: width }, () => ({ ch: " ", fg: "#143430" }));
|
|
453
|
-
rows = [
|
|
454
|
-
...logo.map((cells, row) => {
|
|
455
|
-
const side = gutters[row] ?? [[], []];
|
|
456
|
-
return toChunks([...(side[0] ?? []), ...cells, ...(side[1] ?? [])]);
|
|
457
|
-
}),
|
|
458
|
-
toChunks([...pad(leftPad), ...reflection, ...pad(rightPad)]),
|
|
459
|
-
];
|
|
460
|
-
}
|
|
461
|
-
// Border: breathes near TEAL_DIM and catches the band entering or leaving.
|
|
462
|
-
const breathe = lerpHex("#2e6b66", "#3e938c", 0.5 + 0.5 * Math.sin(frame / 16));
|
|
659
|
+
const rows = canvas.map(toChunks);
|
|
660
|
+
// Border: breathes near TEAL_DIM, catches the aurora at the edges, rides
|
|
661
|
+
// outgoing rings, and pops white for the shockwave itself.
|
|
662
|
+
const breathe = lerpHex(DIM_T, MID_T, 0.5 + 0.5 * Math.sin(frame / 16));
|
|
463
663
|
const edgeGlow = Math.max(bandAt(0, 0), bandAt(cols - 1, 1));
|
|
464
|
-
|
|
664
|
+
let ringGlow = 0;
|
|
665
|
+
for (const r of ringRs) {
|
|
666
|
+
const d = r - inner * 0.55;
|
|
667
|
+
ringGlow = Math.max(ringGlow, Math.exp(-(d * d) / 18));
|
|
668
|
+
}
|
|
669
|
+
let border = lerpHex(breathe, crest, Math.min(edgeGlow * 0.4 + ringGlow * 0.45, 0.6));
|
|
670
|
+
if (frame >= SHOCK_AT && frame < SHOCK_AT + 3)
|
|
671
|
+
border = lerpHex(border, HOT, 0.45);
|
|
465
672
|
// Subtitle decodes on: locked text, then a short zone of cycling static,
|
|
466
673
|
// then the caret. Width stays constant so nothing reflows.
|
|
467
674
|
const lockedLen = Math.min(Math.max(frame - TYPE_START, 0), subtitle.length);
|
|
@@ -476,7 +683,7 @@ export function splashFrame(frame, grid, subtitle, field = false) {
|
|
|
476
683
|
return {
|
|
477
684
|
rows,
|
|
478
685
|
border,
|
|
479
|
-
version: frame <
|
|
686
|
+
version: frame < ASSEMBLY_END + 4 ? "#5c5c5c" : "#8a8a8a",
|
|
480
687
|
subtitle: [
|
|
481
688
|
{ text: subtitle.slice(0, lockedLen), fg: "#8a8a8a" },
|
|
482
689
|
{ text: forming, fg: "#2e6b66" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wordmark.js","sourceRoot":"","sources":["../../../src/ui/wordmark.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wordmark.js","sourceRoot":"","sources":["../../../src/ui/wordmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo-tui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "Interactive Apollo operator TUI built on OpenTUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"start": "node ./bin/apollo-tui.js"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@aui.io/apollo-core": "0.1.
|
|
38
|
+
"@aui.io/apollo-core": "0.1.26",
|
|
39
39
|
"@opentui/core": "^0.4.5",
|
|
40
40
|
"@opentui/react": "^0.4.5",
|
|
41
41
|
"diff": "8.0.2",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.26",
|
|
4
4
|
"description": "Apollo operator console — CLI + interactive TUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"postpack": "node ./scripts/clean-bundle.mjs"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@aui.io/apollo-core": "0.1.
|
|
35
|
-
"@aui.io/apollo-cli": "0.1.
|
|
36
|
-
"@aui.io/apollo-tui": "0.1.
|
|
34
|
+
"@aui.io/apollo-core": "0.1.26",
|
|
35
|
+
"@aui.io/apollo-cli": "0.1.26",
|
|
36
|
+
"@aui.io/apollo-tui": "0.1.26",
|
|
37
37
|
"picocolors": "^1.1.1",
|
|
38
38
|
"yaml": "^2.9.0",
|
|
39
39
|
"commander": "^14.0.3",
|