Skip to main content

Quantum Hardware Orchestration Made Easy

Atomiq ONE provides an intuitive interface to manage and control every piece of hardware and every data stream in your lab.

It is a quantum firmware that allows you to control your complex quantum hardware like a neutral atom or ion trap setup as it would be one device.

Get Started ⮞

<sodipodi:namedview id=“namedview1” pagecolor="#ffffff" bordercolor="#eeeeee" borderopacity=“1” inkscape:showpageshadow=“0” inkscape:pageopacity=“0” inkscape:pagecheckerboard=“0” inkscape:deskcolor="#d1d1d1" inkscape:document-units=“mm” inkscape:zoom=“0.61038661” inkscape:cx=“215.43723” inkscape:cy=“209.70316” inkscape:window-width=“1904” inkscape:window-height=“910” inkscape:window-x=“2568” inkscape:window-y=“134” inkscape:window-maximized=“1” inkscape:current-layer=“g2-5-8” />Quantum FirmwarePhysical QubitsControl HardwareAtoms, Ions, …ARTIQ, QM, Lasers, …Compiler and AlgorithmsQiskit, Cirq, AI, …Programming Framework, …User Interface

HEROize All Your Devices

Lab Picture

To build cutting-edge quantum hardware, select components based on their physical specs, not software interfaces. Navigating protocols like UART, SPI, I2C, CAN, USB, and Ethernet can be complex, especially with proprietary protocols, vendor libraries, and strict OS requirements.

Introducing HEROS and our upcoming microHERO universal interface adapter – your solution for making hardware accessible everywhere in the network. With HEROS, you don’t have to worry about hardware orchstration and interfacing, allowing you to focus on the physics.

Learn More ⮞

Easy to use
Access your RemoteHERO with just two lines of code

Efficient & scalable
Building on the ultra-efficient zenoh protocol, HEROS is light-weight and scales from the microcontroller to large server farms

Portable:
HEROS builds on simple principles which make it easy to implement in various languages

from heros import LocalHERO

class MyDevice(LocalHERO):
    my_variable: int = 3
    def my_method(self, my_argument: str) -> float:
        print(my_argument)
        return 3.14

my_object = MyDevice("test_hero")
from heros import RemoteHERO

obj = RemoteHERO("test_hero")
obj.my_method("hello world")
obj.my_variable += 4

Make Using ARTIQ a Breeze

2025-04-29T12:36:00.456176 image/svg+xml Matplotlib v3.10.1, https://matplotlib.org/
from atomiq import AtomiqExperiment
import artiq.experiment as aq

class MyRamp(AtomiqExperiment):

    components = ["my_ttl", "coils_x", "coils_y"]

    arguments = {
            "ramp_time": {"default": 0.01, "unit": "s"},
    }

    @kernel
    def step(self, point):
        with parallel:
            self.coils_x.set_field(0.0)
            self.coils_y.set_field(0.0)

        self.my_ttl.ttl.pulse(1*aq.ms)
        with self.zotino0.parallel_arb:
            self.coils_x.ramp_field(point.ramp_time,
                field_start = 2., field_end = -4. # Gauss
            )
            self.coils_y.ramp_field(point.ramp_time,
                field_end = 3. # Gauss
            )
        self.my_ttl.ttl.pulse(1*aq.ms)

With the atomiq abstraction layer to the powerful ARTIQ real-time system you can work with generic software objects that represent the actual hardware in the lab.

Atomiq comes completely nix-free and provides many tools and routines to remove the entry barrier of ARTIQ without loosing functionality.

Get Started ⮞

Open Source and Community Driven

Atomiq ONE sets out to solve the reinvent-the-wheel problem and builds a sound foundation for quantum hardware orchestration in industry and academia. Our open source approach guarantees accessibility and distributes know-how among an evergrowing community, ultimately making it easier for scientists to use, extend and maintain the software and making your quantum hardware more stable.

Because the atomiq ONE ecosystem is open source, everyone can customize it to their very specific needs and even contribute their improvements for the benefit of the entire community.

Join the community now ⮞
Lab Picture