## ADDED Requirements ### Requirement: TresJS Fluid Flame Component The system SHALL provide a `volumetricFluidFlameComponent` dynamic component that renders a three-dimensional fluid fire effect inside the existing TresJS scene without creating its own visible scene, camera, renderer, controls, post-processing chain, or DOM UI. #### Scenario: Component mounts in shared preview scene - **WHEN** the dynamic component service loads `volumetricFluidFlameComponent` - **THEN** the component renders through the shared TresJS canvas and uses the existing preview camera, controls, and lights. #### Scenario: Standalone reference UI is absent - **WHEN** the component is rendered in the preview - **THEN** it does not create a fixed DOM control panel, debug wireframe toggle, standalone FPS counter, EffectComposer, RenderPass, UnrealBloomPass, OutputPass, OrbitControls, WebGLRenderer, or visible root scene/camera. ### Requirement: Shader Organization The system SHALL keep all custom shader sources for the component under `src/shader/volumetricFluidFlameComponent/` and split them by pass or material responsibility. #### Scenario: Shader files are externalized - **WHEN** the component imports GLSL code - **THEN** it imports raw shader files from `src/shader/volumetricFluidFlameComponent/` rather than embedding large shader strings in the Vue component. ### Requirement: Configurable Fire Controls The system SHALL expose the fire appearance, shape, simulation, and render-quality controls through component props and `src/dcsConfig.ts`. #### Scenario: User adjusts fire behavior - **WHEN** a user changes flame width, flame height, turbulence, buoyancy, dissipation, emit strength, brightness, absorption, color mode, or scale controls in the config panel - **THEN** the component updates the relevant uniforms without requiring a page reload. #### Scenario: User adjusts quality controls - **WHEN** a user changes simulation resolution, pressure iteration count, or ray-march steps - **THEN** the component applies those settings while keeping values clamped to supported ranges. ### Requirement: Performance-Conscious Defaults The system SHALL use default settings that are less expensive than the provided 64³, 20-pressure-iteration, 112-ray-step reference while preserving the recognizable volumetric flame effect. #### Scenario: Default component loads with optimized settings - **WHEN** the component uses its default `dcsConfig.ts` values - **THEN** it uses a reduced simulation resolution, reduced pressure iterations, and reduced ray-march step count compared with the reference code. ### Requirement: Resource Lifecycle The system SHALL dispose GPU resources created by the fluid fire component when the component is unmounted or structurally recreated. #### Scenario: Component unmounts - **WHEN** the component is removed from the scene - **THEN** render targets, geometries, materials, and internal scene resources created by the component are disposed.