Real-Time 3D.
Python-Native.

A 3D engine that speaks your language. Bring sensor data, ML models, physics and real-time visualisation together in Python — and publish the result as a desktop app or a web page anyone can open.

Digital Twins Simulation Robotics Research Environments Data Visualisation
Talk to Enterprise Team Get Acron

Your Data Pipeline.
In the Engine.

Acron is Python-native: any data source, model or protocol you can reach from Python is available in the render loop, with C++ for the loops that need it.

  • ▪NumPy in the engine — arrays to textures and vertex buffers with acron.gpu, procedural meshes with acron.geom
  • ▪Bullet physics — rigid and soft bodies, constraints and collision queries
  • ▪Networking — ENet, datagrams and Distributed Objects to share state between processes and machines
  • ▪Offscreen mode — render without a window, step the simulation on a fixed clock, and read the frames back
  • ▪Publish to the browser — a static WebAssembly site; viewers install nothing
  • ▪Captured reality — Gaussian-splat scans as environments
digital_twin.py
import numpy as np
from direct.showbase.ShowBase import ShowBase
from acron.core import Texture
from acron import simplepbr
from your_sensors import read_temperature_grid

base = ShowBase()
simplepbr.init()
floor = base.loader.load_model('factory.glb')
floor.reparent_to(base.render)

heat = Texture('heat')
heat.setup_2d_texture(64, 64, Texture.T_float,
                       Texture.F_r32)
floor.set_shader_input('heatmap', heat)  # for your shader

def update(task):
    grid = read_temperature_grid()        # (64, 64) array
    heat.set_ram_image(np.ascontiguousarray(
        grid[::-1], dtype=np.float32))     # bottom row first
    return task.cont

base.task_mgr.add(update, 'sensors')
base.run()

What Teams Can Build

Digital Twins

A live 3D replica of a factory floor, building or vehicle, updated from sensor streams you read in Python.

Robotics Simulation

Bullet bodies and constraints, sensor rendering to offscreen buffers, and a fixed-step loop you can drive from your own training or control code.

Training Data Generation

Render colour and depth for computer-vision datasets, with scene variation scripted in Python.

Multi-Process Simulation

Share simulation state between processes or machines with Distributed Objects or plain ENet messages.

Scientific Visualisation

Turn NumPy arrays, point clouds and time series into interactive 3D, and publish it as a web page.

Spatial Data on the Web

Like the Shinjuku Station Indoor demo: eight storeys of a station and its pedestrian network, from GeoJSON to a WebGL 2 page.

Enterprise & Research

  • Licences for teams, departments and institutions
  • Invoicing and procurement
  • Support agreements
  • Questions about deployment and platforms

Tell us what you're building and we'll find the right terms.