Walk through your IVR logic in a navigable 3D environment โ complete with a holographic avatar,
animated data cables, real-time analytics, and interactive module inspection.
๐ Live Demo ย ยทย ๐ Documentation ย ยทย โก Quick Start ย ยทย ๐ฎ Controls
Full 3D Scene โ Navigate an immersive environment with glowing modules, animated data cables, floating particles, and a holographic avatar. The compact toolbar, persistent controls HUD, camera mode badge, and mini-map keep you oriented at all times.
Dynamic Zoom โ Scroll the mouse wheel to zoom in for an over-the-shoulder view, or zoom out for a top-down overview. Camera angle adjusts dynamically with smooth lerping.
Control a holographic data-entity that walks around your IVR map at ground level. The avatar features articulated limbs with a detailed walk cycle, a glowing visor, antenna, and trail particles.
| Feature | Description |
|---|---|
| WASD Movement | Camera-relative controls โ W always means "forward from where you're looking" |
| Smooth Acceleration | Speed lerps smoothly โ no jarring start/stop |
| Sprint + FOV Kick | Hold Shift to move 1.8ร faster. FOV widens 60ยฐโ72ยฐ for a visceral speed feel |
| Dynamic Zoom | Scroll wheel adjusts distance + angle: over-the-shoulder close, top-down far |
| Footstep Dust | Cyan particles puff at the avatar's feet on each step cycle |
| Free Camera | Press Tab to toggle orbit/free-look mode |
| Click-to-Walk | Click any module to smoothly auto-walk there |
| Double-Click Fly-to | Double-click any module to teleport or fly the camera |
| Speed Indicator | Vertical bar showing IDLE / MOVE / SPRINT with gradient fill |
Press T or click the Tour button in the toolbar to start an automated camera tour that follows the call flow from entry to exit.
- BFS-ordered path โ Follows the actual call-flow graph from IncomingCall through downstream modules
- Smooth fly-between โ Camera transitions smoothly with cubic ease-out between modules
- Orbit dwell โ Gently orbits each module for 2.5 seconds before advancing
- Tour info card โ Floating card shows module name, type, and progress (e.g., "3 / 6")
- Mode badge โ Top-right pill updates to
๐ฌ TOUR (3/6)during tour - Path tracing โ Each visited module's call path is highlighted with traced cables
- Press T to stop โ Instantly exits tour and restores your previous camera mode
The environment responds to the avatar's position to create a living, interactive feel:
| Feature | Description |
|---|---|
| Module Proximity Glow | Modules within 25 units brighten with emissive boost + 1.02ร scale |
| Cable Proximity Glow | Cables near the avatar light up with distance-based falloff |
| "START HERE" Beacon | Entry module has a glowing beacon to guide new users |
Every IVR module type has a unique, identifiable 3D shape sitting on a glowing platform base. All modules feature idle floating animation and a breathing emissive glow.
| Module Type | 3D Shape | Color |
|---|---|---|
| ๐ IncomingCall | Torus portal + glowing sphere | Cyan |
| ๐ฏ SkillTransfer | Industrial cylinder with flanges | Orange |
| ๐ Case / IfElse | Diamond octahedron + spinning wireframe | Yellow |
| ๐ด Hangup | Compact box with X cross | Red |
| ๐ Play | Speaker cone with wave rings | Purple |
| โ๏ธ SetVariable | Gear torus + center sphere | Steel Blue |
| ๐ก๏ธ BlockedCaller | Shield with X cross | Pink |
| ๐๏ธ CRM / Database | Stacked disks with connector | Green |
Cables use Manhattan routing (orthogonal 90ยฐ turns) with smooth CatmullRom curves:
- ๐ต Flowing Data Particles โ Glowing particles travel along each cable showing data flow direction
- โก Electric Pulse Waves โ Periodic brightness spikes travel the cable length
- ๐ซ Breathing Glow โ Cable emissive intensity oscillates subtly
- ๐จ Color-Coded โ Default (blue), Branch (orange), Hangup (red), Success (green), Error (coral)
- ๐ Volume Scaling โ Thickness, particle density, and glow intensity scale with call volume
| Feature | Description |
|---|---|
| Heat Map Mode | Toggle to visualize call volume โ thicker cables and brighter modules indicate more traffic |
| Path Tracing | Click any module to trace the full upstream + downstream path. Unrelated cables dim to 8% |
| Dead-End Detection | Automatically logs unreachable or terminal modules to the console |
| Live Stats Bar | Real-time counts of modules, connections, blocked ANIs, and skill transfers |
| Module Inspector | Detailed side panel with identity, flow metadata, TTS text, and routing info |
| ANI Expansion | Expand blocked caller ANI node clusters around case modules |
| Mini-Map | 2D top-down overview with player position tracking |
The interface is designed to stay out of the way while providing constant awareness:
| Element | Location | Description |
|---|---|---|
| Compact Toolbar | Top center | Logo, filename, toggle group (Labels/Heat/ANI/Tour), icon-only actions |
| Mode Badge | Top right | Shows ๐ฎ 3RD PERSON / ๐ฅ ORBIT / ๐ฌ TOUR (3/6) |
| Info Bar | Bottom left | Inline stats + color-coded legend dots. Fades to 70% idle |
| Controls HUD | Right side | WASD keycap grid + Sprint/Zoom/Cam/Tour hints. Visible at 35% idle |
| Speed Bar | Right side | Vertical fill indicator showing movement speed |
| Mini-Map | Bottom right | Top-down 2D overview with player position |
| Onboarding Toast | Bottom center | First-visit hint: "Use WASD to move ยท Click modules to inspect" |
- Gradient Skybox โ Deep navy โ charcoal gradient for cinematic depth
- Hex Circuit Ground โ Dark hex pattern with cyan circuit traces
- 600 Glow Particles โ Additive-blended dust motes drifting upward
- 20 Firefly Accents โ Large, bright particles with pulsing glow
- Animated Pulse Rings โ 3 concentric rings ripple outward on the ground
- Bloom Post-Processing โ UnrealBloomPass for signature emissive glow
- Per-Module Floating โ Gentle sine-wave bob (desynchronized per module)
Ctrl+FSearch โ Real-time module search by name or type- Hover Tooltip โ Module name + type with emoji indicator
- Smooth Hover Effects โ Scale and glow lerp smoothly on hover
- Path Trace on Click โ Click a module to highlight its full call path
- ๐ท Screenshot Export โ Branded PNG snapshots with watermark and timestamp
- Node.js v18 or later
- npm (comes with Node.js)
# Clone the repository
git clone https://github.com/ryanshatz/Flux3D.git
# Navigate to the project
cd Flux3D
# Install dependencies
npm install
# Start the development server
npm run devOpen http://localhost:5173/Flux3D/ in your browser. The sample IVR script loads automatically.
- Click the upload icon in the toolbar
- Select any
.five9ivrXML file exported from Five9 VCC - The 3D scene builds automatically with spring-animated module entrances
- Click the CSV upload icon in the toolbar
- Upload a CSV call log with module path and call count columns
- Cable thickness, particle density, and module glow scale with call volume
- Toggle the Heat button to switch between normal and heat-mapped views
| Key | Action |
|---|---|
W A S D |
Move forward / left / backward / right |
โ โ โ โ |
Alternative movement keys |
Shift |
Sprint (1.8ร speed, FOV kick, camera shake) |
Tab |
Toggle 3rd-person โ free camera |
T |
Start / stop auto-tour |
Ctrl+F |
Open module search |
Escape |
Close overlays and panels |
F11 |
Toggle fullscreen |
? |
Show keyboard shortcuts |
| Action | Effect |
|---|---|
| Hover | Smooth scale-up + glow + tooltip with module info |
| Click Module | Select โ auto-walk โ trace path โ open inspector |
| Double-Click Module | Teleport avatar (3rd person) or fly camera (orbit) |
| Click Empty Space | Clear selection and path trace |
| Scroll Wheel | Dynamic zoom with camera angle adjustment |
| Right-Drag | Pan camera (free camera mode) |
| Layer | Technology | Purpose |
|---|---|---|
| 3D Engine | Three.js r172 | Scene graph, materials, lighting, post-processing |
| Post-Processing | UnrealBloomPass | Emissive glow on modules and cables |
| Build Tool | Vite 6 | Fast HMR, ES module bundling |
| UI Framework | Vanilla CSS | Custom design system with glassmorphism |
| Labels | CSS2DRenderer | Always-facing module labels |
| Particles | Custom glow sprites | Canvas-generated radial gradient textures |
| Hosting | GitHub Pages | Static deployment from gh-pages branch |
Flux3D/
โ
โโโ ๐ index.html # Main HTML (toolbar, HUD, inspector, overlays)
โโโ โ๏ธ vite.config.js # Vite config (GitHub Pages base path)
โโโ ๐ฆ package.json # Dependencies and scripts
โโโ ๐ INBOUND OPEN.five9ivr # Sample IVR script (auto-loaded)
โ
โโโ ๐ src/
โ โโโ ๐ main.js # App entry โ file handling, UI wiring, shortcuts
โ โ
โ โโโ ๐ styles/
โ โ โโโ ๐จ main.css # Full design system (1,500+ lines)
โ โ # Toolbar, HUD, tour card, mode badge, etc.
โ โ
โ โโโ ๐ parser/
โ โ โโโ ๐ five9Parser.js # Five9 XML โ module graph + edge list
โ โ โโโ ๐ ttsDecoder.js # TTS prompt text decoder
โ โ
โ โโโ ๐ data/
โ โ โโโ ๐ csvParser.js # Call log CSV โ heat map data
โ โ
โ โโโ ๐ scene/
โ โ โโโ ๐ฌ SceneManager.js # Three.js orchestrator (1,500+ lines)
โ โ โ # Proximity glow, auto-tour, path tracing,
โ โ โ # animations, hover system
โ โ โโโ ๐๏ธ ModuleFactory.js # 3D geometry builder (10+ module shapes)
โ โ โโโ ๐ CableRenderer.js # Manhattan cables + flow particles + pulses
โ โ โโโ ๐ค AvatarController.js # 3rd-person character + FOV kick + dust puffs
โ โ โ # + dynamic zoom + auto-walk
โ โ โโโ โจ ParticleSystem.js # Dual-layer atmosphere (dust + fireflies)
โ โ
โ โโโ ๐ ui/
โ โโโ ๐ InspectorPanel.js # Module detail sidebar
โ โโโ ๐บ๏ธ MiniMap.js # 2D top-down overview minimap
โ
โโโ ๐ docs/
โ โโโ ๐ screenshots/ # README screenshots
โ
โโโ ๐ public/ # Static assets
# Build production bundle
npm run build
# Deploy to gh-pages branch
npx gh-pages -d distThe site will be available at https://<username>.github.io/Flux3D/
npm run build
# Upload contents of dist/ to Netlify, Vercel, Cloudflare Pages, etc.Note: If deploying to a subdirectory, update
baseinvite.config.jsto match your path.
Contributions are welcome! Flux3D is fully open-source under the MIT license.
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
- ๐จ Additional module type geometries
- ๐ Real-time Five9 API integration for live call data
- ๐ฑ Mobile touch controls
- ๐ต Audio feedback and ambient sound
- ๐ Multi-script comparison view
- ๐ Advanced analytics dashboards
This project is licensed under the MIT License โ see the LICENSE file for details.

