summaryrefslogtreecommitdiff
path: root/TODO.md
blob: aad105ea81378455221fddc3c99b4431a935b81d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# To-Do List

**High-level task tracker.** See individual design docs for implementation details.

**Completed tasks:** `doc/COMPLETED.md`

---

## Priority 1: Spectral Brush Editor (Task #5) [IN PROGRESS]

Web-based tool for procedurally tracing audio spectrograms. Replaces large `.spec` assets with tiny C++ code (50-100× compression).

**Design:** `doc/SPECTRAL_BRUSH_EDITOR.md`

**Phases:** C++ Runtime → Editor Core → File I/O → Extensions

**Impact:** 5 KB .spec → ~100 bytes C++ code

---

## Priority 2: Workspace System (Task #77)

Self-contained workspaces for parallel demo development. Each workspace contains timeline, music, assets, and shaders.

**Design:** `doc/WORKSPACE_SYSTEM.md`

**Structure:** `/workspaces/{main,test,...}` + `/assets/common/` for shared resources

**Benefit:** Clean separation, easy switching (`-DDEMO_WORKSPACE=main`), scales to multiple demos

**Effort:** 12-16 hours

---

## Priority 3: 3D System Enhancements (Task #18)

Pipeline for importing complex 3D scenes to replace hardcoded geometry.

**Status:** C++ object data loading complete. Shader SDF integration pending.

---

## Priority 4: WGSL Modularization (Task #50) [RECURRENT]

Ongoing shader code hygiene. Refactor for granular, reusable snippets.

**Sub-tasks:**
- Split `common_uniforms.wgsl` into separate files (Low priority)
- Type-safe shader composition to prevent raw string usage (Low priority)

---

## Future: Size Optimization (64k Target)

Final phase tasks for reaching 64KB binary size:

- **Task #22:** Windows Native Platform (replace GLFW with Win32)
- **Task #28:** Spectrogram Quantization (optimize frequency distribution)
- **Task #34:** Full STL Removal (custom containers)
- **Task #35:** CRT Replacement (CRT-free entry)

**Measurement:** Use `./scripts/measure_size.sh` to track progress (Task #76 complete)

---

**Backlog:** `doc/BACKLOG.md` for untriaged ideas