Project Structure & Templates
Intarva projects are architected for deterministic simulation. Depending on your selection during intarva init, the engine generates one of three structural tiers.
1. Template Architectures
Choose the architecture that fits your project’s complexity. All templates are 100% compatible with each other and can be upgraded manually.
Tier 1: Minimal
For simple single-board logic.
project/
├── .intarva/
│ └── circuit.json
├── main.py
└── intarva.config.json
Tier 2: Standard
The “Gold Standard” (Default).
project/
├── .intarva/
│ ├── circuit.json
│ └── metadata.json
├── modules/
│ └── pico-1/
│ └── main.py
├── src/
│ └── main.js
└── intarva.config.json
Tier 3: Professional
Enterprise-grade CI/CD ready.
project/
├── .github/
│ └── workflows/
│ └── intarva-ci.yml
├── .intarva/...
├── modules/...
├── src/...
├── tests/
├── package.json
└── tsconfig.json
2. Master File Glossary
A comprehensive breakdown of every file generated in the Intarva environment.
| File / Folder | Purpose | Editable? |
|---|---|---|
.github/workflows/ |
Contains GitHub Action YAMLs for Headless Circuit Validation and automated testing. | ✅ Yes |
.intarva/circuit.json |
The Netlist. Contains component coordinates, electrical nets, and physics parameters. | ⚠️ Editor Only |
.intarva/metadata.json |
Internal IDs and project version tracking. Used to sync the CLI with the Virtual Desktop. | ❌ No |
modules/ |
The Multi-Processor Workspace. Every board in your circuit gets a dedicated folder here. | ✅ Yes |
src/main.js |
The Global Orchestrator. Controls cross-board communication and UI event handling. | ✅ Yes |
intarva.config.json |
The Master Manifest. Maps hardware IDs to software folders and defines transpiler targets. | ✅ Yes |
package.json |
Defines CLI dependencies and simulation scripts (e.g., npm run dev). |
✅ Yes |
tsconfig.json |
Configures IntelliSense. Enables auto-completion for pins, registers, and SDK methods in VS Code. | ✅ Yes |
.gitignore |
Prevents large binary caches and node_modules from cluttering your repository. |
✅ Yes |
3. The “modules/” Logic
The modules/ directory is the cornerstone of Intarva’s Isolated Sandbox architecture.
Encapsulated Workspaces
Each subdirectory in modules/ acts as a separate “Disk” for a virtual microcontroller. If you have an ESP32 and a Pico, their main.py files live in different folders. This prevents global variable collisions and accurately simulates the memory separation of real hardware.
Dynamic Mapping
Intarva doesn’t care about your folder names, it cares about the mappings in intarva.config.json. You can rename modules/pico-1 to modules/elevator-controller, as long as the config file points the correct hardware ID to that path.