/** * Visualization Controls * * UI controls for the 3D neural network visualization. */ import React from 'react'; import styles from './VisualizationControls.module.css'; export interface VisualizationControlsProps { // View level level: 1 | 2 | 3; onLevelChange: (level: 1 | 2 | 3) => void; // Display options showLabels: boolean; onShowLabelsChange: (show: boolean) => void; showConnections: boolean; onShowConnectionsChange: (show: boolean) => void; animateFlow: boolean; onAnimateFlowChange: (animate: boolean) => void; // Model info modelName?: string; totalLayers?: number; totalParams?: number; // Actions onResetCamera?: () => void; onExport?: () => void; } export const VisualizationControls: React.FC = ({ level, onLevelChange, showLabels, onShowLabelsChange, showConnections, onShowConnectionsChange, animateFlow, onAnimateFlowChange, modelName, totalLayers, totalParams, onResetCamera, onExport, }) => { return (
{/* Model Info */} {modelName && (

Model

{modelName}
{totalLayers && {totalLayers} layers} {totalParams && {formatParams(totalParams)}}
)} {/* View Level */}

Abstraction Level

{/* Display Options */}

Display

{/* Actions */}

Actions

{onResetCamera && ( )} {onExport && ( )}
{/* Legend */}

Layer Types

{/* Keyboard Shortcuts */}

Shortcuts

123 View level
L Toggle labels
C Toggle connections
Space Reset camera
); }; // Helper Components const LegendItem: React.FC<{ color: string; label: string }> = ({ color, label }) => (
{label}
); // Helper Functions function formatParams(params: number): string { if (params >= 1e9) return `${(params / 1e9).toFixed(1)}B`; if (params >= 1e6) return `${(params / 1e6).toFixed(1)}M`; if (params >= 1e3) return `${(params / 1e3).toFixed(1)}K`; return params.toString(); } export default VisualizationControls;