Menu

Home

Welcome to LabRAD!

labrad development has moved to GitHub.

Synopsis

ProblemUnmanageable inflexible spaghetti code is controlling your experimental setups
ImplicationSlowed progress due to frequent duplication of effort and debugging headaches
SolutionLabRAD (RAD = Rapid Application Development)

Motivation

Note: LabRAD is not specific to the use case described here. It is designed to be useful in any research or production environment requiring complex instrument control and/or data acquisition.

LabRAD was developed in response to an increasingly complex software effort needed to run experiments in the Martinis Group at the UC Santa Barbara Physics Department. The group's effort is focused on building a Quantum Computer using superconducting integrated circuits. The experiment will eventually include a large number of Qubits, each requiring dedicated control mechanisms. To prevent frequent duplication of effort, a scalable software architecture was needed to provide the required control. This architecture needed to accommodate multiple users and developers, since many different graduate students and post docs are sharing the software and hardware resources required to run their respective experiments. LabRAD was specifically designed to alleviate the problems inherent in designing a complex, scalable, distributed control system managed by several developers and users. As science advances, novel experiments in all fields are becoming increasingly involved, making LabRAD a generally useful tool beyond the developing group.

Overview

LabRAD provides a platform to easily break up a complex software project into small, manageable modules that can be written in different programming languages, run on different computers, and independently maintained by different developers. These modules communicate over a standard network connection, immediately allowing for the system to be remotely accessed and controlled. A growing library of standard modules is available, providing out-of-the-box functionality like hardware interfacing, data storage and presentation, system exploration, etc. LabRAD could potentially be used for almost any distributed software project imaginable, but is targeted at scientific research setups, supporting numerical data (real, complex, timestamps, ...), unit conversion, graphing, etc.

Getting started

After uncompromising performance, the highest priority of the LabRAD project is ease of use. To start playing immediately, check out our:
    LabRAD Quick Start Tutorial

For a more thorough introduction, refer to the:
    LabRAD Introduction

 

~ Markus Ansmann, Dec 10th, 2007


Related

Wiki: Introduction
Wiki: QuickStart
LabRAD for LabVIEW: Wiki: Home
LabRAD Modules: Wiki: Home