# 64k Demo Project This is a C++ project aiming to create a cross-platform (Windows, macOS, Linux) 64-kilobyte demo. ## Quickstart Development setup: ```bash cmake -S . -B build -DDEMO_ALL_OPTIONS=ON cmake --build build ``` ## Project Files - `ASSET_SYSTEM.md`: Describes the custom asset packing and management system. - `BUILD.md`: Instructions for building the project. - `CONTRIBUTING.md`: Guidelines for contributing, including coding style and commit policies. - `FETCH_DEPS.md`: Information on third-party dependencies. - `HOWTO.md`: General instructions for running and interacting with the demo. - `PHASE2_COMPRESSION.md`: Details on future asset compression strategies. - `PROCEDURAL.md`: Details on the procedural texture generation system. - `PROJECT_CONTEXT.md`: A comprehensive overview of the project's architecture, features, and current state. - `SEQUENCE.md`: Complete reference for `.seq` file format and timeline system. - `SPEC_EDITOR.md`: Plans for a future web-based spectrogram editor tool. - `3D.md`: Overview of the 3D rendering pipeline and future enhancements. - `TODO.md`: A list of immediate, small-scale tasks. ## Source Code Layout The source code is organized into the following main directories: - `src/`: The main C++ source code for the demo. - `3d/`: Core 3D rendering components (camera, scene, renderer). - `audio/`: Audio synthesis and processing engine. - `gpu/`: WebGPU rendering pipeline, effects, and shader management. - `procedural/`: Procedural content generation (textures, etc.). - `tests/`: Unit and integration tests for various components. - `util/`: Shared utility classes, like the asset manager. - `assets/`: Raw assets (audio, sequence files) that are processed and packed. - `scripts/`: Helper scripts for building, packaging, and running the demo. - `tools/`: Source code for command-line tools used in the asset pipeline (e.g., `asset_packer`, `spectool`). - `third_party/`: Third-party libraries like miniaudio and glfw3webgpu.