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 generation

Key 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

  • NeuronCoreMini component 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

  1. CSS animations — Simpler but less dynamic, no 3D capabilities
  2. Canvas 2D — Less performant for complex animations
  3. Lottie/Rive — Pre-made animations, less customizable
  4. 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)