Grand Diomande Research ยท Full HTML Reader

Echelon Web Visualization Guide

- **Position**: X/Y coordinates are the first two latent dimensions - **Size**: Scales with latent energy (movement intensity) - **Glow**: Residual solver error creates a blue aura - **Rotation**: Spins based on beat phase

Embodied Trajectory Systems research note experiment writeup candidate score 18 .md

Full Public Reader

Echelon Web Visualization Guide

Quick Start

1. Build the frontend:

bash
   cd apps/web-viz
   npm install
   npm run build
   cd ../..

2. Run the server:

bash
   cargo run --release -p studio-web

3. Open browser:
Navigate to http://localhost:8080

What You'll See

The Latent Orb ๐Ÿ”ต

The central glowing sphere represents your position in latent space:

  • Position: X/Y coordinates are the first two latent dimensions
  • Size: Scales with latent energy (movement intensity)
  • Glow: Residual solver error creates a blue aura
  • Rotation: Spins based on beat phase

Motion Trails โœจ

Blue particle trails fade behind the orb, showing the path through latent space.

Phase Indicator โšช

White dot orbits the main sphere, showing the current beat phase (0-1).

Slow Attractor ๐ŸŸ 

Orange disk connected by a spring line:
- Shows the slow equilibrium position (DELL only)
- Size indicates coupling strength

Limb Satellites ๐ŸŸก

Small yellow spheres orbit the main orb:
- One per tracked body part
- Size shows per-limb energy
- Positioned at fixed angles

Telemetry HUD ๐Ÿ“Š

Top-left overlay shows:
- Engine: Audio callback time
- Scheduler: Scheduling latency
- CPU: Process CPU usage
- XRuns: Audio dropouts

Bottom progress bars:
- Energy: Latent space energy
- Residual: Solver convergence
- Coupling: Slow-fast coupling (DELL)

Architecture Comparison

Old (egui)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Rust egui Window   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ 2D Canvas     โ”‚  โ”‚
โ”‚  โ”‚ Simple shapes โ”‚  โ”‚
โ”‚  โ”‚ No shaders    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

New (Three.js)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Browser (WebGL)            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Three.js 3D Scene     โ”‚  โ”‚
โ”‚  โ”‚ โ”œโ”€ GPU Shaders        โ”‚  โ”‚
โ”‚  โ”‚ โ”œโ”€ Bloom Post-FX      โ”‚  โ”‚
โ”‚  โ”‚ โ”œโ”€ Particle System    โ”‚  โ”‚
โ”‚  โ”‚ โ””โ”€ Smooth Animation   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚         โ–ฒ                   โ”‚
โ”‚         โ”‚ WebSocket         โ”‚
โ”‚         โ”‚                   โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”‚
โ”‚  โ”‚ Rust Backend        โ”‚    โ”‚
โ”‚  โ”‚ (viz-server crate)  โ”‚    โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Benefits Over egui

FeatureeguiThree.js
Graphics QualityDeveloper-gradeProduction-grade
GPU ShadersโŒโœ…
Bloom/GlowโŒโœ…
3DโŒโœ…
ParticlesLimitedGPU-accelerated
WaveformsManualWeb Audio API
Anti-aliasingLimitedFull MSAA
PerformanceCPU-boundGPU-accelerated

Next Steps

Audio Visualization

To add real-time audio waveforms:

1. Stream audio samples over WebSocket
2. Use Web Audio API's AnalyserNode
3. Add a `<Waveform>` component to the scene

Spectrogram

Create a time-frequency heatmap:

1. Compute FFT in Rust or browser
2. Render as a scrolling texture
3. Display below the main orb

VR Support

Three.js supports WebXR:

jsx
import { VRButton, XR } from '@react-three/xr'

<XR>
  <Scene />
</XR>

Recording

Use Canvas Capture API:

js
const stream = canvas.captureStream(60)
const recorder = new MediaRecorder(stream)

Troubleshooting

WebSocket won't connect:
- Check that `studio-web` is running
- Verify port 8080 is not in use
- Check browser console for errors

Black screen:
- Ensure `npm run build` completed successfully
- Check that `apps/web-viz/dist` exists
- Verify WebGL is enabled in your browser

Poor performance:
- Reduce bloom intensity
- Lower particle count in `TrailParticles.jsx`
- Disable post-processing effects

No data flowing:
- Verify motion bridge is running
- Check that ringbufs are being produced to
- Enable tracing: `RUST_LOG=debug cargo run -p studio-web`

Promotion Decision

Attach run IDs, datasets, metrics, and reproduction commands.

Source Anchor

Comp-Core/core/audio-media/cc-echelon/VISUALIZATION.md

Detected Structure

Method ยท Evaluation ยท Architecture