The Genesis WebUI provides an interactive, real-time visualization of the evolutionary process, allowing you to monitor experiments, explore solution genealogies, and analyze performance metrics.
The WebUI serves as a dashboard for monitoring Genesis evolution experiments, providing:
- Real-time Updates: Live monitoring of ongoing experiments
- Evolution Tree: Interactive visualization of solution genealogies
- Performance Metrics: Charts and graphs of fitness over generations
- Code Diff Viewer: Side-by-side comparison of evolved solutions
- Island Visualization: Multi-island evolution monitoring
- Database Browser: Explore archived solutions and metadata
Launch the WebUI alongside your evolution experiment:
# Start your evolution experiment
genesis_launch variant=circle_packing_example
# In another terminal, start the frontend
cd genesis/webui/frontend
npm install
npm run dev
# Open browser to http://localhost:5173 (or port shown by vite)- Node.js 18+ and npm
- Python 3.12+ (for backend)
- Access to the experiment's database
The frontend is a modern React application. Use standard npm commands:
cd genesis/webui/frontend
npm install
npm run devThe evolution tree shows the genealogical relationships between solutions:
- Nodes: Individual solutions with fitness scores
- Edges: Parent-child relationships
- Colors: Performance-based color coding
- Interactive: Click nodes to view details
- Filtering: Filter by generation, island, or fitness
Track evolution progress with various metrics:
- Fitness Over Time: Line charts showing best/average fitness
- Generation Statistics: Distribution plots for each generation
- Island Comparison: Performance across different islands
Compare solutions to understand evolutionary changes:
- Side-by-Side View: Parent vs child code comparison
- Syntax Highlighting: Language-specific highlighting
- Change Highlighting: Added, removed, and modified lines
Explore the archive of evolved solutions:
- Search and Filter: Find solutions by criteria
- Sort Options: By fitness, generation, or date
- Metadata View: Detailed solution information
For experiments running on remote machines:
# Create SSH tunnel (local port 5173 -> remote port 5173)
ssh -L 5173:localhost:5173 username@remote-hostVite usually defaults to port 5173. If used, it will try 5174, etc. Check the terminal output for the actual port.
Ensure the backend API (if running separately) or database connection is configured correctly in the frontend settings.
The WebUI consists of:
- Frontend: React + TypeScript application (
genesis/webui/frontend) - Backend: Python API (MCP Server or ClickHouse direct access)
- Database: ClickHouse (operational store)
- Assets: Icons, stylesheets, and images
For customization and development details, see the source code in genesis/webui/frontend/.
