SimPilot is built from three main components that work together to deliver an end-to-end simulation platform. The web layer handles the user interface and AI orchestration, the compute layer runs simulations in sandboxed environments, and the core package provides shared solver logic.
Package overview
🌐Web Application
The main application — handles authentication, chat UI, AI agent orchestration, and the 3D viewer.
⚙️Compute Engine
Manages job queues, file operations, simulation execution, and interactive visualization sessions.
📦Core Library
Shared solver definitions, tool implementations, and knowledge base queries.
Web layer
The web application provides:
- AI orchestration: The AI agent runs server-side, streaming tool calls and responses to the client in real time. A multi-provider model registry supports 15+ LLM providers and 20+ models with automatic cross-provider fallback on transient errors.
- Authentication: Sign in with email, Google, or GitHub. Enterprise plans support SSO.
All LLM calls happen server-side. API keys for AI providers are never exposed to the client. The chat interface uses Server-Sent Events (SSE) to stream the agent's responses as they are generated.
Compute layer
The compute layer manages simulation execution through tier-separated queues:
| Queue | Tier | Concurrency | Max Runtime |
|---|
| Free | Free users | 1 job at a time | 10 minutes |
| Pro | Pro subscribers | 3 concurrent jobs | 60 minutes |
| Enterprise | Enterprise | 10 concurrent jobs | No limit |
Each worker picks jobs from its queue, provisions an isolated container with the solver pre-installed, mounts the case directory, enforces resource limits per subscription tier, and streams output back as job logs.
Storage
Files are stored securely in cloud storage with per-user isolation. Each simulation gets a dedicated storage prefix organized by user and case ID. User file uploads (geometry files, custom meshes) from the web interface are transferred to the primary store when a simulation job is submitted.
Runtime backends
The compute layer supports 4 runtime backends for simulation execution:
Local runtime
Runs the solver directly on the compute server's filesystem. Used for development and testing.
Docker runtime
The default production runtime. Each simulation runs in an isolated container with pre-installed solvers. Supports resource limits and automatic cleanup.
HPC runtime
Submits jobs to traditional high-performance computing clusters via SLURM or PBS job schedulers. Used for large-scale simulations that require dozens or hundreds of CPU cores.
Remote runtime
Runs simulations on cloud infrastructure. Each job gets a dedicated container with configurable CPU and memory. This is the primary production backend for cloud-hosted runs.
Cloud infrastructure
Production runs on AWS with isolated containers for each simulation. The cluster runs four services:
- Control plane -- The API server handling job submission and file operations
- Worker -- Job processors running simulations from the tier-separated queues
- Visualization -- Interactive 3D visualization sessions for exploring simulation results
- CAD -- Browser-based CAD sessions for creating and editing geometry
Solver plugin system
SimPilot's solver support is built on an extensible plugin system. Each solver plugin defines everything the agent needs to set up and run a simulation: case directory structure, file generation order, meshing strategies, known error patterns and fixes, mesh validation rules, and domain-specific knowledge.
Current solver support
| Solver | Status | Coverage |
|---|
| OpenFOAM | Full support | 50+ solver variants, full mesh pipeline, error recovery, visualization |
| SU2 | Full support | Compressible aerodynamics, Gmsh mesh pipeline, history.csv extraction, 3-level validation |
| CalculiX (CCX) | Full support | Structural FEA, INP generation, .dat extraction, Gmsh integration, 3-level validation |
The plugin architecture means adding a new solver requires implementing the plugin interface -- no changes to the core agent, workflow, or infrastructure are needed.