Skip to content

ryanshatz/Flux3D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

16 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โ—† FLUX3D

An open-source, immersive 3D visualizer for Five9 IVR call flows

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


License: MIT Three.js Vite GitHub Pages




๐Ÿ“ธ Screenshots

Flux3D โ€” Full 3D Scene Overview

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.


Auto-Tour Mode
Auto-Tour Mode โ€” Press T or click Tour in the toolbar. The camera flies module-by-module through the call flow, orbiting each one while displaying the module name, type, and progress counter in a floating card.
Proximity Glow & Footstep Dust
Proximity Glow โ€” Walk near any module and it lights up with an emissive boost. Footstep dust puffs trail behind the avatar. Cables near the avatar also brighten to show data flow activating around you.

Over-the-Shoulder Zoom

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.




โœจ Features

๐ŸŽฎ 3rd-Person Avatar Navigation

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

๐ŸŽฌ Auto-Tour Mode

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

๐ŸŒŸ World Reactivity

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

๐Ÿ—๏ธ Premium Module Geometries

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

๐Ÿ”Œ Animated Cable Routing

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

๐Ÿ“Š Analytics & Diagnostics

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

๐Ÿ–ฅ๏ธ Professional HUD

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"

๐ŸŒŒ Immersive Atmosphere

  • 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)

๐Ÿ” Search & Interaction

  • Ctrl+F Search โ€” 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



โšก Quick Start

Prerequisites

  • Node.js v18 or later
  • npm (comes with Node.js)

Installation

# 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 dev

Open http://localhost:5173/Flux3D/ in your browser. The sample IVR script loads automatically.

Loading Your Own IVR Script

  1. Click the upload icon in the toolbar
  2. Select any .five9ivr XML file exported from Five9 VCC
  3. The 3D scene builds automatically with spring-animated module entrances

Adding Heat Map Data

  1. Click the CSV upload icon in the toolbar
  2. Upload a CSV call log with module path and call count columns
  3. Cable thickness, particle density, and module glow scale with call volume
  4. Toggle the Heat button to switch between normal and heat-mapped views



๐ŸŽฎ Controls

Keyboard

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

Mouse

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)



๐Ÿ› ๏ธ Tech Stack

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



๐Ÿ“ Project Structure

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



๐Ÿš€ Deployment

GitHub Pages (Recommended)

# Build production bundle
npm run build

# Deploy to gh-pages branch
npx gh-pages -d dist

The site will be available at https://<username>.github.io/Flux3D/

Any Static Host

npm run build
# Upload contents of dist/ to Netlify, Vercel, Cloudflare Pages, etc.

Note: If deploying to a subdirectory, update base in vite.config.js to match your path.




๐Ÿค Contributing

Contributions are welcome! Flux3D is fully open-source under the MIT license.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

Ideas for Contributions

  • ๐ŸŽจ 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



๐Ÿ“œ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.




Built with Three.js โ€ข Designed for Five9 IVR Diagnostics โ€ข Open Source


Made by Ryan Shatz

About

Flux3D is an open-source, immersive 3D visualizer for Five9 IVR call flows. Walk through your IVR logic with a holographic avatar, animated data cables, real-time analytics, and interactive module inspection.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors