Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.
DevelopersHEAT CaptureHEAT ProtoLibHEAT ProtoLib

HEAT ProtoLib

HEAT ProtoLib defines the simulation data model as Protocol Buffers .proto schemas and publishes builder libraries for C#, C++, Python and Rust generated from them. It is not a service: it produces no network traffic of its own. HEAT Capture, HEAT Capture Plugins and the HEAT platform all serialize and parse the same messages through it, which is what lets a plugin written in C++ publish a frame that HEAT Capture, written in C#, deserializes without either side hand-writing the wire format.

The data model is an Entity-Component System: an Entity is an id, a name and a list of Component values; each Component holds exactly one of 53 typed component messages (transform, dynamics, gaze, ground-vehicle control, and so on); a SimulationFrame is a snapshot of every entity and every event at one capture moment. See Message reference for every field.

What you need

  • The language runtime for whichever package you consume: .NET 10 (or netstandard2.0/2.1, or .NET Framework 4.8 for Unity), a C++23 compiler, Python 3.8+, or Rust. See Consume the packages for exact requirements per language.
  • Nothing else. The published packages carry their own protobuf runtime dependency; there is no HEAT-specific service to install or configure.

Limits

  • ProtoLib defines data, not transport. It does not open a socket, start a server, or carry an authentication scheme. Products that move ProtoLib messages over a network (HEAT Capture’s WebSocket publish endpoint, the HEAT platform’s ingestion API) document that transport in their own Interface Control Document, cross-referencing the ProtoLib version they were verified against.
  • There is no formal Interface Control Document for ProtoLib itself. An ICD describes transport, session lifecycle and authentication; a schema library has none of those. What an ICD would otherwise carry for a schema, its data model, units, coordinate frames and compatibility rules, is in Message reference and Versioning and compatibility.
  • The code generation toolchain that produces the builders from the .proto files is VRAI internal tooling; see Code generation if you are contributing to ProtoLib itself, not consuming it.

Pages

SchemasHow the .proto files are organised and how to obtain them.Message referenceEvery entity, component and event message, field by field.Consume the packagesInstallation and minimum requirements per language.Versioning and compatibilitySchema evolution rules and what a consumer must tolerate.

This documentation was verified against tag v0.37.1 of HEAT ProtoLib. Where a page states a field, a type, a package name or a version requirement, it was read from the source at that tag.

Opens your browser's print dialog. Choose "Save as PDF" as the destination.