[modularization] Phase 1: Core Foundation — Scene, Ticker, Theme, State #410
Closed
opened 2026-03-24 17:10:17 +00:00 by perplexity
·
1 comment
No Branch/Tag Specified
main
groq/issue-1126
groq/issue-1118
groq/issue-1119
claude/issue-1112
feat/mempalace-api-add-1775582323040
groq/issue-1047
groq/issue-915
claude/issue-1075
groq/issue-917
groq/issue-918
groq/issue-1103
groq/issue-1105
groq/issue-1106
groq/issue-1108
groq/issue-1092
groq/issue-1095
groq/issue-1098
groq/issue-913
timmy/issue-fix-896-897-898-910
claude/issue-823
claude/issue-879
claude/issue-880
claude/issue-827
claude/issue-882
claude/issue-826
claude/issue-836
claude/issue-832
claude/issue-833
timmy/issue-855
allegro/self-improvement-infra
ezra/deep-dive-architecture-20260405
claude/modularization-phase-1
gemini/issue-431
GoldenRockachopa
pre-agent-workers-v1
v0-golden
Labels
Clear labels
222-epic
3d-world
CI
QA
actionable
agent-presence
aistudio-ready
assigned-aistudio
assigned-claude
assigned-claw-code
assigned-gemini
assigned-groq
assigned-kimi
assigned-kimi
assigned-perplexity
assigned-sonnet
blocked
claude-ready
claw-code-done
claw-code-in-progress
deprioritized
duplicate
epic
gemini-api
gemini-review
google-ai-ultra
groq-ready
harness
identity
infrastructure
kimi-done
kimi-in-progress
kimi-ready
lazzyPit
media-gen
modularization
needs-design
nostr
p0-critical
p1-important
p2-backlog
performance
perplexity-ready
portal
research
security
sonnet-ready
sovereignty
velocity-engine
Continuous integration, runners, workflow issues
Quality assurance, testing, and production audit
Queued for Code Claw (qwen/openrouter)
Dispatched to Kimi via OpenClaw
Blocked by external dependency or merge conflict
Code Claw completed this task
Code Claw is actively working
Epic / umbrella issue
Gemini API integration
Google AI Ultra integration work
Timmy identity and branding
Kimi completed this task
Kimi is actively working on this
Lazarus Pit — automated agent resurrection and health recovery
AI media generation (image/video/audio)
Deep research and planning tasks
Security hardening, vulnerability fixes, access control
Auto-generated by velocity engine
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
KimiClaw
Rockachopa
Timmy
allegro
antigravity
bezalel
claude
claw-code
codex-agent
ezra
gemini
google
grok
groq
hermes
kimi
manus
perplexity
sonnet
Clear assignees
No Assignees
claude
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Timmy_Foundation/the-nexus#410
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Phase 1 of App.js Modularization (Refs #409)
What
Extract the foundational modules that everything else depends on:
modules/core/scene.js— THREE.Scene, camera, renderer, OrbitControls, window resize handlermodules/core/ticker.js— The Global Animation Clock. SinglerequestAnimationFrameloop. Exportssubscribe(updateFn)andunsubscribe(updateFn). All modules register theirupdate(elapsed, delta)with the ticker instead of calling RAF directly.modules/core/theme.js— ExpandNEXUS.colorsinto fullNEXUS.themewith colors, fonts, font sizes, line weights, glow parameters, opacity values. Every canvasctx.fillStyleandctx.fontmust reference theme values.modules/core/state.js— Shared reactive data bus. HoldszoneIntensity,totalActivity, weather data, block height, agent statuses. Data modules write to it, visual modules read from it.Module Contract
Critical Rule
After this phase,
app.jsstill contains most logic but now IMPORTS and USES the core modules. No module may callrequestAnimationFramedirectly — all must subscribe to the ticker.Acceptance Criteria
node --check app.jspassesPriority: P0
This is the foundation — nothing else can modularize without core/.
Refs #409
PR #463 created.
Phase 1 core foundation is complete:
modules/core/scene.js: new — re-exports scene/camera/renderer/orbitControls/composer from scene-setup.js and controls.jsmodules/core/ticker.js: updated — single RAF loop withsubscribe(fn),unsubscribe(fn),start()modules/core/theme.js: updated — fullNEXUS.themewith accent, panel, agent status, sovereignty, earth, LoRA, and font constantsmodules/core/state.js: already complete from prior workapp.js: wired to all four core modules; manual RAF replaced withticker.subscribe+ticker.start()All panel modules (
heatmap,agent-board,dual-brain,lora-panel,earth,sovereignty) now resolve theirsubscribeandNEXUSimports correctly.node --check app.jspasses.