Feature: Neuron Core visualization — WebGL neuron animation for agent state
Author: ar1vit0rCreated Aug 24, 2026Updated Aug 26, 2026
Labelsplatform:allworkstream:UI
Problem Statement
OpenJarvis has a Tauri desktop app but lacks visual feedback for agent state. Users cannot see when the agent is thinking, speaking, or idle — they only see text output.
A visual indicator would:
- Provide immediate feedback on agent state
- Make the desktop app feel more alive and responsive
- Support voice interactions with visual cues
- Enhance the user experience for always-on assistants
Proposed Solution
Add a WebGL-based neuron visualization that reacts to agent state changes:
Core Components:
NeuronCoreMini.tsx
├── Three.js WebGL renderer
├── 5 morphology types (pyramidal, stellate, purkinje, bipolar, network)
├── State-driven animation (idle, listening, thinking, speaking)
├── Mic amplitude integration
└── Pitch-driven shape morphing
neuronMorphologies.ts
├── Geometry builders for each morphology
├── Camera positioning
└── Branch/twig generationKey Features:
- 5 neuron morphologies (selectable via config)
- State-driven color and animation speed
- Real-time mic amplitude visualization
- Pitch-driven shape morphing
- Cross-window state synchronization
- Reduced motion support (prefers-reduced-motion)
Dependencies:
three— WebGL rendering (frontend only)
Acceptance Criteria
-
NeuronCoreMinicomponent renders WebGL neuron visualization - 5 morphologies are selectable (pyramidal, stellate, purkinje, bipolar, network)
- Animation reacts to agent state (idle, listening, thinking, speaking)
- Mic amplitude drives visualization intensity
- Pitch drives shape morphing
- Cross-window state sync works via EventBus
- Reduced motion preference is respected
- Component is self-contained (no OpenJarvis runtime dependencies)
- Unit tests for morphology generation
- Documentation with usage examples
Alternatives Considered
- CSS animations — Simpler but less dynamic, no 3D capabilities
- Canvas 2D — Less performant for complex animations
- Lottie/Rive — Pre-made animations, less customizable
- Status indicator only — Simple text/icon, but less engaging
Additional Context
I have a working implementation in my personal fork (ar1vit0r/OpenJarvis) with:
- 445 lines (NeuronCoreMini.tsx)
- 320 lines (neuronMorphologies.ts)
- 5 morphologies with real-time animation
- Cross-window state synchronization
- Integration with voice channel events
The visualization has been tested in the Tauri desktop app and responds to voice channel state changes in real-time.
Contributor: @ar1vit0r (9 merged PRs in OpenJarvis)
Source: open-jarvis/OpenJarvis