Skip to main content
Hardwave models hardware as a dataflow graph of components. Each component is a typed black box with input ports, output ports, and a solver that turns inputs into outputs. Connect components into a graph, run the simulation engine, and get results: from a simple voltage divider to a full robot drivetrain.

Why Hardwave?

Hardware prototyping is expensive and slow. You design something, order parts, assemble it, test it, and discover a motor draws twice the expected current. Then you iterate. Hardwave lets you close that loop in software:
  • Simulate electrical, mechanical, and thermal behaviour before buying anything
  • Compose components into systems. A resistor, a motor driver, and a microcontroller all share the same interface
  • Calibrate simulation models against real measurements from physical hardware
  • Swap solvers: start with a formula, replace it with a hosted ML model trained on real data, without changing any wiring

Quick Start

1

Install Hardwave

Install the Python package and import the standard library to register built-in types and components.
2

Build a graph

Add component instances to a SimulationGraph and wire their ports together.
3

Run the engine

Validate the graph, then call SimulationEngine.run() for steady-state or transient results.

Core Concepts

Everything is a component. A resistor is a component. An Arduino is a component. A robot arm is a component. The abstraction never breaks.

Component health and faults

Stdlib components like DCMotor and LiPoCell monitor operating limits during simulation. When a motor overheats or a battery over-discharges, the engine records structured diagnostics and can degrade component outputs, making it possible to stress-test power supplies, validate shutdown firmware, and teach failure modes before hardware breaks.

Component Faults and Health

Runtime warnings, fault codes, and FaultMode configuration

What’s Next?

Quickstart

Simulate a voltage divider in under five minutes

Core Concepts

Learn types, ports, components, and solvers

Component Faults

Warnings, faults, and degraded behaviour during simulation

Building Graphs

Wire components together and validate connections

Aggregating Ports

Combine multiple connections on one input port

Greenhouse Tutorial

Build a complete vent controller from scratch

Standard Library

Browse 30 signal types and 28 built-in components

Premium Components

Use high-fidelity cloud-served models in your simulations