From 7790472dabfa0ecd06f3408d847860ec6072866e Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 9 Feb 2026 18:51:54 +0100 Subject: feat: Implement workspace system (Task #77) Self-contained workspaces for parallel demo development. Structure: - workspaces/main,test - Demo-specific resources - assets/common - Shared resources - workspace.cfg - Configuration per workspace CMake integration: - DEMO_WORKSPACE option (defaults to main) - cmake/ParseWorkspace.cmake - Config parser - Workspace-relative asset/timeline/music paths Migration: - Main demo: demo.seq to workspaces/main/timeline.seq - Test demo: test_demo.seq to workspaces/test/timeline.seq - Common shaders: assets/common/shaders - Workspace shaders: workspaces/*/shaders Build: cmake -B build -DDEMO_WORKSPACE=main cmake -B build_test -DDEMO_WORKSPACE=test All tests passing (36/36). handoff(Claude): Task #77 workspace system complete. Both main and test workspaces build and pass all tests. Co-Authored-By: Claude Sonnet 4.5 --- workspaces/main/assets.txt | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 workspaces/main/assets.txt (limited to 'workspaces/main/assets.txt') diff --git a/workspaces/main/assets.txt b/workspaces/main/assets.txt new file mode 100644 index 0000000..2be2c9d --- /dev/null +++ b/workspaces/main/assets.txt @@ -0,0 +1,62 @@ +# Asset Name, Compression Type, Filename/Placeholder, Description + +# --- Drum & Percussion Samples --- +KICK_1, NONE, assets/music/KICK_606.spec, "606 Kick" +KICK_2, NONE, assets/music/KICK_90S_2.spec, "90s Kick" +SNARE_1, NONE, assets/music/SNARE_808.spec, "808 Snare" +SNARE_2, NONE, assets/music/SNARE_909_TUNE_8.spec, "909 Snare" +SNARE_3, NONE, assets/music/SNARE_BLUE_ROOM.spec, "Snare Blue Room" +HIHAT_1, NONE, assets/music/HIHAT_CLOSED_DMX.spec, "DMX Closed Hi-hat" +HIHAT_2, NONE, assets/music/HIHAT_CLOSED_DUFF.spec, "Duff Closed Hi-hat" +HIHAT_3, NONE, assets/music/HIHAT_CLOSED_ER_1.spec, "ER-1 Closed Hi-hat" +CRASH_1, NONE, assets/music/CRASH_DMX.spec, "DMX Crash" +RIDE_1, NONE, assets/music/RIDE_CUP_1.spec, "Ride Cymbal" +SPLASH_1, NONE, assets/music/SPLASH_GROUNDED.spec, "Splash Cymbal" + +# --- Melodic Samples --- +BASS_1, NONE, assets/music/BASS_GUITAR_FEEL.spec, "Bass Guitar" +BASS_2, NONE, assets/music/BASS_SYNTH_1.spec, "Synth Bass 1" +BASS_3, NONE, assets/music/SYNTH_BASS_DISTORT.spec, "Distorted Synth Bass" + +# --- Procedural Textures --- +NOISE_TEX, PROC(gen_noise, 1234, 16), _, "Procedural noise texture for bump mapping" + +# --- WGSL Shaders & Snippets --- +SHADER_RENDERER_3D, NONE, shaders/renderer_3d.wgsl, "Hybrid 3D Renderer Shader" +SHADER_COMMON_UNIFORMS, NONE, shaders/common_uniforms.wgsl, "Common Uniforms Snippet" +SHADER_SDF_PRIMITIVES, NONE, shaders/sdf_primitives.wgsl, "SDF Primitives Snippet" +SHADER_LIGHTING, NONE, shaders/lighting.wgsl, "Lighting Snippet" +SHADER_RAY_BOX, NONE, shaders/ray_box.wgsl, "Ray-Box Intersection Snippet" +SHADER_RAY_TRIANGLE, NONE, shaders/ray_triangle.wgsl, "Ray-Triangle Intersection Snippet (Möller-Trumbore)" +SHADER_MAIN, NONE, shaders/main_shader.wgsl, "Main Heptagon Shader" +SHADER_PARTICLE_COMPUTE, NONE, shaders/particle_compute.wgsl, "Particle Compute Shader" +SHADER_PARTICLE_RENDER, NONE, shaders/particle_render.wgsl, "Particle Render Shader" +SHADER_PASSTHROUGH, NONE, shaders/passthrough.wgsl, "Passthrough Shader" +SHADER_ELLIPSE, NONE, shaders/ellipse.wgsl, "Ellipse Shader" +SHADER_PARTICLE_SPRAY_COMPUTE, NONE, shaders/particle_spray_compute.wgsl, "Particle Spray Compute" +SHADER_GAUSSIAN_BLUR, NONE, shaders/gaussian_blur.wgsl, "Gaussian Blur Shader" +SHADER_SOLARIZE, NONE, shaders/solarize.wgsl, "Solarize Shader" +SHADER_DISTORT, NONE, shaders/distort.wgsl, "Distort Shader" +SHADER_CHROMA_ABERRATION, NONE, shaders/chroma_aberration.wgsl, "Chroma Aberration Shader" +SHADER_VISUAL_DEBUG, NONE, shaders/visual_debug.wgsl, "Visual Debug Shader" +SHADER_SKYBOX, NONE, shaders/skybox.wgsl, "Skybox background shader" +SHADER_MATH_SDF_SHAPES, NONE, shaders/math/sdf_shapes.wgsl, "SDF Shapes Snippet" +SHADER_MATH_SDF_UTILS, NONE, shaders/math/sdf_utils.wgsl, "SDF Utils Snippet" +SHADER_MATH_COMMON_UTILS, NONE, shaders/math/common_utils.wgsl, "Common Math Utils" +SHADER_MATH_NOISE, NONE, shaders/math/noise.wgsl, "RNG and Noise Functions" +SHADER_RENDER_SHADOWS, NONE, shaders/render/shadows.wgsl, "Shadows Snippet" +SHADER_RENDER_SCENE_QUERY_BVH, NONE, shaders/render/scene_query_bvh.wgsl, "Scene Query Snippet (BVH)" +SHADER_RENDER_SCENE_QUERY_LINEAR, NONE, shaders/render/scene_query_linear.wgsl, "Scene Query Snippet (Linear)" +SHADER_RENDER_LIGHTING_UTILS, NONE, shaders/render/lighting_utils.wgsl, "Lighting Utils Snippet" +SHADER_MESH, NONE, shaders/mesh_render.wgsl, "Mesh Rasterization Shader" +MESH_CUBE, NONE, test_mesh.obj, "A simple cube mesh" +DODECAHEDRON, NONE, dodecahedron.obj, "A dodecahedron mesh" +SHADER_VIGNETTE, NONE, shaders/vignette.wgsl, "Vignette Shader" +SHADER_COMPUTE_GEN_NOISE, NONE, shaders/compute/gen_noise.wgsl, "GPU Noise Compute Shader" +SHADER_COMPUTE_GEN_PERLIN, NONE, shaders/compute/gen_perlin.wgsl, "GPU Perlin Noise Compute Shader" +SHADER_COMPUTE_GEN_GRID, NONE, shaders/compute/gen_grid.wgsl, "GPU Grid Compute Shader" +SHADER_COMPUTE_GEN_BLEND, NONE, shaders/compute/gen_blend.wgsl, "GPU Blend Composite Shader" +SHADER_COMPUTE_GEN_MASK, NONE, shaders/compute/gen_mask.wgsl, "GPU Mask Composite Shader" +CIRCLE_MASK_COMPUTE_SHADER, NONE, shaders/circle_mask_compute.wgsl, "Circle mask compute shader" +CIRCLE_MASK_RENDER_SHADER, NONE, shaders/circle_mask_render.wgsl, "Circle mask render shader" +MASKED_CUBE_SHADER, NONE, shaders/masked_cube.wgsl, "Masked cube shader" -- cgit v1.2.3