summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-02 11:57:29 +0100
committerskal <pascal.massimino@gmail.com>2026-02-02 12:06:29 +0100
commit492cacecd91d32ce789d77d10c1ad97af481c685 (patch)
treef9ebe500efec9826205c958637665d17ad4711be
parent8275e158f26798f218fbd60cc9791cc53aac480a (diff)
refine some sub-tasks and concepts
new file: TODO.md
-rw-r--r--3D.md14
-rw-r--r--GEMINI.md1
-rw-r--r--PROJECT_CONTEXT.md12
-rw-r--r--TODO.md30
4 files changed, 54 insertions, 3 deletions
diff --git a/3D.md b/3D.md
index cf3842d..e944cbe 100644
--- a/3D.md
+++ b/3D.md
@@ -24,6 +24,20 @@ So in the end, we'll
We want to use shadow maps, so multi-passes is expected.
+## debugging features
+
+The assist the visual debugging, we need a 'visual_debug' mode (code to be
+removed with STRIP_ALL) that:
+
+ a) draws a wireframe around the bounding volumes (box, etc.)
+ b) draw the trajectories (camera, objects, ...)
+ c) show the collision points
+ d) displays the ray/object intersection interactively
+ e) show the lights (direction, cone, ...), display their shadow-map in 3d and on-screen (2d).
+
+This must be captured and tracked as a sub-task
+
+
## future step
Have an exporter from Blender modelling software. That would be a converter
diff --git a/GEMINI.md b/GEMINI.md
index c50f1ff..234546f 100644
--- a/GEMINI.md
+++ b/GEMINI.md
@@ -6,6 +6,7 @@
@CONTRIBUTING.md
@HOWTO.md
@3D.md
+@TODO.md
@SPEC_EDITOR.md
@PROCEDURAL.md
@src/util/asset_manager.h
diff --git a/PROJECT_CONTEXT.md b/PROJECT_CONTEXT.md
index 30a24d8..2d3e21d 100644
--- a/PROJECT_CONTEXT.md
+++ b/PROJECT_CONTEXT.md
@@ -28,14 +28,20 @@ Incoming tasks in no particular order:
- [x] 2. parse the keyboard key. Exit the demo when 'esc' is pressed. Toggle full-screen when 'f' is pressed.
- [x] 3. add binary crunchers for all platforms
- [ ] 4. add cross-compilation for PC+linux (x86_64) and PC+Windows (.exe binary)
- - [x] PC+Windows (.exe binary) via MinGW
- - [ ] PC+linux (x86_64)
+ - [x] a. PC+Windows (.exe binary) via MinGW
+ - [ ] b. PC+linux (x86_64)
+ - [ ] c. have a shell script (check_all.sh) under scripts/ to verify all builds (PC, MacOS, Win64) for all config. To be run before a major commit. Script can be slow to pass, doesn't matter.
- 5. implement a spectrogram editor for representing .spec with elementary shapes (bezier curves, lines, random noise, rectangles...) as a mean of compression / spec generation
- [x] 6. add a scripting tool to edit the demo (compiled into the binary at the end)
- [x] 7. compile wgpu-native in optimized mode (not unoptimized)
- [x] 8. add a #define STRIP_ALL to remove all unnecessary code for the final build (for instance, command-line args parsing, or unnecessary options, constant parameters to function calls, etc.)
+ Sub-tasks to define an overall code-stripping rule (to be captured in the CONTRIBUTING.md rules):
+ - [ ] a. function implementations are removed
+ - [ ] b. useless struct fields are removed (is_fullscreen_, debug_mode_, etc. e.g.)
+ - [ ] c. static arrays are malloc'd instead of initialized to zero
+ - [ ] d. code is simplified for size if possible (propose an alternate code implementation inside a STRIP_ALL #ifdef if needed)
- [x] 9. work on the compact in-line and off-line asset system (@ASSET_SYSTEM.md)
-- 10. optimize spectool to remove trailing zeroes from a spec file before saving it
+- 10. optimize spectool to remove trailing zeroes from a spec file before saving it. Remove the leading zeroes too.
- [x] 11. implement a general [time / timer / beat] system in the demo, for effects timing
- [x] 12. Implement 'Sequence' and 'Effect' system:
- `Effect` interface: `init`, `start`, `compute`, `render`, `end`, `priority`.
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..7375a2c
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,30 @@
+# list of quick TODO tasks
+
+this is temporary, frequently-updated, list of quick TODO that
+don't warrant a 'Task' in itself.
+Once done, move the task description to the 'Past Tasks' section
+
+
+## Up-to-date Tasks list
+
+In no particular order, they just need to be done:
+
+ * A) each build_XXX build directory is generating its own build_XXX/src/generated/* assets and code.
+ This is wrong and error-prone. There should be one source of truth
+ for the generated assets/data/code at the top of the tree, under a common
+ src/generated/ directory. Adapt all the code for that. Pay attention
+ to tests (test_assets, e.g.) that *also* generate assets. They must§
+ generate them in a throw-away directory.
+
+ * B) make a pass of 'vertical compaction' for the code: there's a lot of
+ superfluous '\n' empty lines in the code that shouldn't be here.
+ Remove them to have a vertically more dense code. Use clang-format if needed.
+
+ * C) add a top-level @README.md file with a short description of the
+ project for new-comers, a one-line description of each .md files, and
+ a quick layout and description of the source tree.
+
+## Past Tasks
+
+The past TODO are already done (stored here for archiving):
+