summaryrefslogtreecommitdiff
path: root/GEMINI.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-15 17:34:15 +0100
committerskal <pascal.massimino@gmail.com>2026-02-15 17:34:15 +0100
commitc8dd8b43df063108b4d6754621612edf4aa4e3cf (patch)
tree50734da062c1409ed47bba75ca7d0d331c5aa990 /GEMINI.md
parentba074d45c10cecd18b09f408d92ff57f9472e901 (diff)
add c++ engineer role
Diffstat (limited to 'GEMINI.md')
-rw-r--r--GEMINI.md55
1 files changed, 13 insertions, 42 deletions
diff --git a/GEMINI.md b/GEMINI.md
index 787ba22..5c47b07 100644
--- a/GEMINI.md
+++ b/GEMINI.md
@@ -84,48 +84,19 @@ IMPORTANT:
- Keep PROJECT_CONTEXT.md focused on current status
- Keep TODO.md focused on active/next tasks only
-# ============================================
-# CURRENT STATE SNAPSHOT (Gemini-Specific)
-# ============================================
-<state_snapshot>
- <overall_goal>
- Produce a cross-platform (Windows, macOS, Linux) 64-kilobyte demoscene production. This is achieved through a C++ codebase utilizing WebGPU for graphics (with a hybrid SDF/rasterization pipeline) and a real-time procedural audio engine for sound, with a heavy focus on size-optimization at all stages.
- </overall_goal>
-
- <active_constraints>
- - All tests passing (36/36 - 100%).
- - Strict 64k final binary size target.
- - Adherence to project coding style and contribution guidelines is mandatory.
- </active_constraints>
-
- <key_knowledge>
- - **Workspace System:** The project is organized into self-contained workspaces (e.g., `workspaces/main`, `workspaces/test`) managed by a `workspace.cfg` file, separating demo-specific content from a `common/` directory that holds shared shaders and resources. Selection is done at build time with `-DDEMO_WORKSPACE=<name>`.
- - **Build & Asset Pipeline:** A modular CMake system orchestrates the build. It uses host-native tools (`asset_packer`, `seq_compiler`, `tracker_compiler`) to parse manifest files (`assets.txt`, `timeline.seq`, `music.track`) and compile assets directly into the binary as C++ data, including procedural asset generation.
- - **Audio Engine:** A real-time, sample-accurate audio engine with a tracker system for sequencing patterns from `.track` files. It features procedural synthesis from spectrograms (FFT-based IDCT), variable tempo that is decoupled from visual timing, and an abstracted backend for testing and offline rendering (`WavDumpBackend`).
- - **Graphics & Rendering:** The renderer uses WebGPU (wgpu-native) and WGSL shaders. It employs a hybrid technique, rasterizing proxy geometry (cubes) and then performing SDF raymarching within the fragment shader. The 3D system supports BVH acceleration, and there's a pipeline for importing OBJ models.
- - **Sequence & Timing:** Visuals are defined in `.seq` files using a beat-based timeline that is compiled into physical seconds. Shaders receive a `CommonPostProcessUniforms` buffer containing both physical time (`time`) for constant-speed animations and musical time (`beat_time`, `beat_phase`) for syncing with the audio playback clock.
- - **CNN Post-Processing:** The project features a sophisticated CNN post-processing pipeline (CNNv2) for visual stylization. This includes a full Python/PyTorch training toolchain, a binary weight format, and a WebGPU-based validation tool. The network uses 7D parametric static features (RGBD, UV, sin, bias) for rich, position-aware effects.
- - **Development Workflow:** There is a strong emphasis on tooling and process, including a visual timeline editor, audio analysis tools, a web-based CNN debugger, strict coding standards enforced by `clang-format`, and a comprehensive pre-commit script (`./scripts/check_all.sh`).
- </key_knowledge>
+# Role: Senior Systems Engineer (C++ Focus)
- <artifact_trail>
- - `GEMINI.md`: This file, synchronized with CLAUDE.md structure
- - `PROJECT_CONTEXT.md`: Current system status
- - `TODO.md`: Active priorities (Task #5 in progress)
- </artifact_trail>
+## Response Style
+- **Extreme Brevity:** Provide direct answers. No "Sure, I can help," "I hope this helps," or "Here is the code."
+- **Code-First:** Lead with the solution or the code block.
+- **Explain on Demand:** Do not explain *how* the code works unless explicitly asked with "Why?" or "Explain."
+- **No Markdown Fluff:** Avoid bolding every other word. Use standard technical formatting.
- <recent_actions>
- - **File Hierarchy Cleanup:** Major reorganization of the project structure, establishing the `workspaces/` and `common/` directories and eliminating ~100 redundant files (especially shaders).
- - **CNNv2 Training Pipeline:** Fixed critical checkpointing bugs and streamlined the output of the training scripts for faster iteration.
- - **Effect Render API Refactor:** Simplified the `Effect::render` API and fixed uniform initialization bugs across 19 effects.
- - **CNN Shader Testing Tool:** Implemented `tools/cnn_test` for offline GPU-accelerated validation of trained CNN models.
- - **Effect Source Hierarchy Cleanup**: Refactored the effects system by splitting `src/gpu/demo_effects.h` into individual header files for each effect, creating 10 new headers, moving class definitions, updating `.cc` files with new includes, fixing missing `#include` statements, creating a common `particle_defs.h`, and cleaning up `demo_effects.h`. Verified by passing all 34 tests. handoff(Gemini):
- </recent_actions>
+## Technical Preferences
+- **C++ Standards:** Default to C++20/C++23 unless specified otherwise.
+- **Style:** Prefer Modern C++ (RAII, templates, constexpr, STL) over C-style patterns.
+- **Nomenclature:** Use standard engineering terminology (e.g., "O(n) complexity," "pointer aliasing," "cache miss") without defining the terms.
- <task_state>
- 1. [IN PROGRESS] Task #5: Spectral Brush Editor (Priority 1)
- 2. [PENDING] Task #18: 3D System Enhancements (Priority 4)
- 3. [RECURRENT] Task #50: WGSL Modularization (Priority 4)
- 4. [PENDING] Tracker Humanization & Sample Offset (Priority 3)
- </task_state>
-</state_snapshot> \ No newline at end of file
+## Interaction Protocol
+- If a query is ambiguous, provide the most likely technical solution rather than asking for clarification.
+- Treat the user as a peer with expert-level knowledge.