/** * RustyTorch++ Demo Application * * Landing page with routing to individual demos */ import { useState } from "react"; import { LandingPage } from "./pages/LandingPage"; import { HemodynamicsDemo } from "./pages/demos/HemodynamicsDemo"; import { MreDemo } from "./pages/demos/MreDemo"; import { ThermalAblationDemo } from "./pages/demos/ThermalAblationDemo"; import { SlidescopeDemo } from "./pages/demos/SlidescopeDemo"; import { NeuroDemo } from "./pages/demos/NeuroDemo"; import { NeuralOperatorDemo } from "./pages/demos/NeuralOperatorDemo"; import { PIDDMDemo } from "./pages/demos/PIDDMDemo"; import { DigitalTwinDemo } from "./pages/demos/DigitalTwinDemo"; import { FNOBenchmarkDemo } from "./pages/demos/FNOBenchmarkDemo"; import { ImageClassifierDemo } from "./pages/demos/ImageClassifierDemo"; import { TimeSeriesForecastDemo } from "./pages/demos/TimeSeriesForecastDemo"; import { PortfolioOptimizerDemo } from "./pages/demos/PortfolioOptimizerDemo"; import { RiskAnalyzerDemo } from "./pages/demos/RiskAnalyzerDemo"; import { PINNBenchmarkDemo } from "./pages/demos/PINNBenchmarkDemo"; import { InferenceProfilerDemo } from "./pages/demos/InferenceProfilerDemo"; import { ObjectDetectorDemo } from "./pages/demos/ObjectDetectorDemo"; import { ModelZooDemo } from "./pages/demos/ModelZooDemo"; import { SegmentationDemo } from "./pages/demos/SegmentationDemo"; /** Available demo views */ type AppView = 'landing' | 'hemodynamics' | 'mre-elastography' | 'heat-transfer' | 'slidescope' | 'neuro' | 'neural-operator' | 'piddm' | 'digital-twin' | 'fno-benchmark' | 'image-classifier' | 'timeseries-forecast' | 'portfolio-optimizer' | 'risk-analyzer' | 'pinn-benchmark' | 'inference-profiler' | 'object-detector' | 'model-zoo' | 'segmentation'; function App() { const [currentView, setCurrentView] = useState('landing'); // Handle demo selection from landing page const handleSelectDemo = (demoId: string) => { if (demoId === 'hemodynamics') { setCurrentView('hemodynamics'); } else if (demoId === 'mre-elastography') { setCurrentView('mre-elastography'); } else if (demoId === 'heat-transfer') { setCurrentView('heat-transfer'); } else if (demoId === 'slidescope') { setCurrentView('slidescope'); } else if (demoId === 'neuro') { setCurrentView('neuro'); } else if (demoId === 'neural-operator') { setCurrentView('neural-operator'); } else if (demoId === 'piddm') { setCurrentView('piddm'); } else if (demoId === 'digital-twin') { setCurrentView('digital-twin'); } else if (demoId === 'fno-benchmark') { setCurrentView('fno-benchmark'); } else if (demoId === 'image-classifier') { setCurrentView('image-classifier'); } else if (demoId === 'timeseries-forecast') { setCurrentView('timeseries-forecast'); } else if (demoId === 'portfolio-optimizer') { setCurrentView('portfolio-optimizer'); } else if (demoId === 'risk-analyzer') { setCurrentView('risk-analyzer'); } else if (demoId === 'pinn-benchmark') { setCurrentView('pinn-benchmark'); } else if (demoId === 'inference-profiler') { setCurrentView('inference-profiler'); } else if (demoId === 'object-detector') { setCurrentView('object-detector'); } else if (demoId === 'model-zoo') { setCurrentView('model-zoo'); } else if (demoId === 'segmentation') { setCurrentView('segmentation'); } }; // Handle back navigation to landing const handleBackToLanding = () => { setCurrentView('landing'); }; // Render current view switch (currentView) { case 'hemodynamics': return ; case 'mre-elastography': return ; case 'heat-transfer': return ; case 'slidescope': return ; case 'neuro': return ; case 'neural-operator': return ; case 'piddm': return ; case 'digital-twin': return ; case 'fno-benchmark': return ; case 'image-classifier': return ; case 'timeseries-forecast': return ; case 'portfolio-optimizer': return ; case 'risk-analyzer': return ; case 'pinn-benchmark': return ; case 'inference-profiler': return ; case 'object-detector': return ; case 'model-zoo': return ; case 'segmentation': return ; case 'landing': default: return ; } } export default App;