Skip to content

ORCA: An AI-Assisted Surrogate Modelling Pipeline for RFIC Passives

ORCA logo

ORCA (Open RF Integrated Circuit Automation) builds surrogate models of RF integrated circuit passives by combining parametric GDS layout generation, full-wave electromagnetic simulation, and neural network training and export in one automated pipeline.

Main Capabilities

  • Parametric GDS layout generation via gdsfactory.
  • Full-wave electromagnetic simulation via Palace.
  • Automatic dataset construction from simulation results.
  • Neural network training (PyTorch) with feature engineering pipelines.
  • ONNX export for portable, simulator-ready surrogate models.
  • GUI workflow and script-first workflow.
  • Pre-trained models and geometry examples included.

Start Here

  • New users: go to Getting Started -> Installation.
  • First successful run: Getting Started -> Quickstart.
  • Bring your own geometry: User Guide -> Custom Classes.
  • API details: see the source and docstrings in src/orca/.

Core Concepts

ORCA automates the full loop from geometry to a trained, exported surrogate model.

Pipeline Workflow

flowchart LR
        A[Geometry Class] --> B[GDSGenerator]
        B --> C[GDSConverter]
        C --> D[PalaceSimulator]
        D --> E[S-Parameter Dataset]
        E --> F[ModelTrainer]
        F --> G[OnnxExporter]
        G --> H[ModelTester]
        H --> I[.onnx Surrogate]

Pipeline Stages

Stage Purpose
GDSGenerator Samples geometry parameters and writes GDS layout files
GDSConverter Converts GDS files to Palace-compatible mesh inputs
PalaceSimulator Runs full-wave EM simulations and stores Touchstone results
ModelTrainer Trains a PyTorch neural network on the simulation dataset
OnnxExporter Exports the trained model to portable ONNX format
ModelTester Evaluates prediction accuracy against held-out simulation data

Geometry Class

A geometry class defines everything ORCA needs to sample and simulate a component:

  • Parameter ranges via InputParameterIterator (sampling strategy, min/max per parameter).
  • GDS generation via create_gds_file(name, output_path, params).
  • Feature engineering via FeatureTransformPipeline (ratios, Chebyshev features, etc.).
  • Dataset type (e.g. GeoToSParamDatasetSingleFrequency).
  • Model factory via get_model(hyperparameters) — called by ModelTrainer during Optuna tuning.
  • Hyperparameter search space via get_hyperparameter_search_space() — Optuna distributions per tunable parameter.

Inputs and Outputs

- A geometry class (`BaseGeometry` subclass) with parameter definitions.
- A stackup XML file describing the physical layer stack.
- A Palace simulation configuration file (`.simcfg`).
- A Palace executable (local or containerised via Apptainer).
- Touchstone (`.sNp`) S-parameter files per simulated geometry variant.
- Trained PyTorch model checkpoint.
- Exported ONNX surrogate model (`.onnx`).
- Full run context stored under `output/<geometry_name>/`.
  • COBRA consumes ORCA surrogate models for circuit-level RFIC optimization.
  • Palace is used as the EM solver backend.

If you use ORCA in research, see citation information in the repository README.