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.