feat(manifold): render ParticleStage when output Mode is Particle System

Particle System is the default output Mode. When active it renders the
full-bleed ParticleStage (flow field driven by engine outputs each rAF) in
place of the manifold stage, regardless of the in/split/out/composite focus,
and suppresses the duplicate corner MEMLNaut label (the stage's top axis bar
already shows it).
This commit is contained in:
monkey-w1n5t0n 2026-06-28 04:22:53 +02:00
parent 785935bf25
commit 711415e9ff

View file

@ -25,6 +25,7 @@ import { useEngine, useEngineVersion } from '../engine';
import { MF_MODES, modeEngineId, seededGradient, shapeValues } from './model';
import type { MFParam } from './model';
import { CompositeStage } from './CompositeStage';
import { ParticleStage } from './ParticleStage';
import { SplitStage } from './SplitStage';
import { OutputStage } from './OutputStage';
import { InputMini } from './InputMini';
@ -676,7 +677,14 @@ export function ConsoleApp({ focus: initialFocus = 'composite' }: ConsoleAppProp
bottom: 0,
}}
>
{focus === 'composite' ? (
{outputMode === 'particles' ? (
<ParticleStage
pos={pos}
onMove={onMove}
axes={axes}
setAxis={(k, v) => setAxes((s) => ({ ...s, [k]: v }))}
/>
) : focus === 'composite' ? (
<CompositeStage
split={split}
onSplit={setSplit}
@ -735,18 +743,20 @@ export function ConsoleApp({ focus: initialFocus = 'composite' }: ConsoleAppProp
/>
)}
{/* corner overlay */}
<div
style={{
position: 'absolute',
top: 12,
left: 14,
zIndex: 20,
pointerEvents: 'none',
}}
>
<strong style={{ color: 'var(--accent)', fontSize: 'var(--fs-md)' }}>MEMLNaut</strong>
</div>
{/* corner overlay — hidden in Particle mode (top axis bar owns that row) */}
{outputMode !== 'particles' && (
<div
style={{
position: 'absolute',
top: 12,
left: 14,
zIndex: 20,
pointerEvents: 'none',
}}
>
<strong style={{ color: 'var(--accent)', fontSize: 'var(--fs-md)' }}>MEMLNaut</strong>
</div>
)}
<VerdictCluster
onPerturb={perturb}