Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Template Catalog

MADSci includes 26 built-in templates for scaffolding lab components. Browse templates with:

madsci new list                       # Show all templates
madsci new list --category module     # Filter by category
madsci new list --tag device          # Filter by tag

Module Templates (6)

Templates for creating complete node module packages with server, interface(s), types, tests, and documentation.

module/basic

Minimal module with a single example action.

madsci new module --template module/basic --name my_module
ParameterTypeDefaultDescription
module_namestringmy_moduleModule name (lowercase, underscores)
module_descriptionstringA MADSci node moduleModule description
author_namestringAuthor name
portinteger2000Default port (1024-65535)
include_testsbooleantrueInclude test scaffolding
include_dockerfilebooleantrueInclude Dockerfile

module/device

Standard device module with lifecycle actions (initialize, shutdown, status) and resource management.

madsci new module --template module/device --name my_device

Parameters: Same as module/basic (default name: my_device).

module/instrument

Measurement instrument module with calibration and data acquisition actions.

madsci new module --template module/instrument --name my_instrument

Parameters: Same as module/basic (default name: my_instrument).

module/liquid_handler

Liquid handling module with aspirate, dispense, and transfer actions.

madsci new module --template module/liquid_handler --name my_liquid_handler

Parameters: Same as module/basic (default name: my_liquid_handler).

module/camera

Camera/vision system module with image capture and configuration actions.

madsci new module --template module/camera --name my_camera

Parameters: Same as module/basic (default name: my_camera).

module/robot_arm

Robot arm module with pick, place, move, and home actions for material handling.

madsci new module --template module/robot_arm --name my_robot_arm

Parameters: Same as module/basic (default name: my_robot_arm).


Interface Templates (4)

Templates for adding interface variants to existing modules.

interface/fake

In-memory simulation interface for testing without hardware.

madsci new interface --type fake
ParameterTypeDefaultDescription
module_namestringmy_moduleModule name
simulated_latencyfloat0.1Simulated operation latency in seconds (0.0-60.0)

interface/real

Real hardware interface stub with connection lifecycle and error handling patterns.

madsci new interface --type real
# or: madsci new module  (included by default in module templates)
ParameterTypeDefaultDescription
module_namestringmy_moduleModule name
connection_typestringtcpConnection type

interface/sim

Interface for connecting to an external device simulator (e.g., Omniverse).

madsci new interface --type sim
ParameterTypeDefaultDescription
module_namestringmy_moduleModule name
simulator_urlstringhttp://localhost:9000Simulator URL

interface/mock

Pytest mock-based interface for unit testing.

madsci new interface --type mock
ParameterTypeDefaultDescription
module_namestringmy_moduleModule name

Node Templates (1)

node/basic

Standalone REST node server for an existing interface.

madsci new node --name my_device --interface-module my_device.interface
ParameterTypeDefaultDescription
node_namestringmy_nodeNode name
node_descriptionstringA MADSci REST nodeNode description
portinteger2000Default port (1024-65535)

Experiment Templates (4)

Templates for different experiment execution modalities.

experiment/script

Simple run-once experiment script using ExperimentScript modality.

madsci new experiment --modality script --name my_study
ParameterTypeDefaultDescription
experiment_namestringmy_experimentExperiment name
experiment_descriptionstringA MADSci experimentDescription
author_namestringAuthor name

experiment/notebook

Interactive Jupyter notebook experiment using ExperimentNotebook modality.

madsci new experiment --modality notebook --name my_analysis
ParameterTypeDefaultDescription
experiment_namestringmy_experimentExperiment name
experiment_descriptionstringA MADSci notebook experimentDescription
author_namestringAuthor name
lab_server_urlstringhttp://localhost:8000/Lab server URL

experiment/tui

Interactive terminal UI experiment using ExperimentTUI modality.

madsci new experiment --modality tui --name my_interactive
ParameterTypeDefaultDescription
experiment_namestringmy_experimentExperiment name
experiment_descriptionstringA MADSci experimentDescription
author_namestringAuthor name

experiment/node

REST API server experiment using ExperimentNode modality.

madsci new experiment --modality node --name my_service
ParameterTypeDefaultDescription
experiment_namestringmy_experimentExperiment name
experiment_descriptionstringA MADSci server experimentDescription
author_namestringAuthor name
server_portinteger6000Server port (1024-65535)

Workflow Templates (2)

workflow/basic

Simple single-step workflow.

madsci new workflow --name sample_transfer
ParameterTypeDefaultDescription
workflow_namestringmy_workflowWorkflow name
workflow_descriptionstringA MADSci workflowDescription
node_namestringexample_nodeTarget node name
action_namestringexample_actionAction to execute

workflow/multi_step

Multi-step workflow with sequential node actions.

madsci new workflow --template workflow/multi_step --name process_pipeline
ParameterTypeDefaultDescription
workflow_namestringmy_workflowWorkflow name
workflow_descriptionstringA multi-step MADSci workflowDescription
node_1_namestringnode_1First node name
node_1_actionstringaction_1First action
node_2_namestringnode_2Second node name
node_2_actionstringaction_2Second action

Workcell Templates (1)

workcell/basic

Basic workcell configuration for coordinating multiple nodes.

madsci new workcell --name my_lab_workcell
madsci new workcell --nodes liquidhandler,platereader,incubator
ParameterTypeDefaultDescription
workcell_namestringmy_workcellWorkcell name
workcell_descriptionstringA MADSci workcellDescription

Lab Templates (3)

lab/minimal

Minimal lab configuration with no Docker required.

madsci new lab --template minimal --name my_research_lab
ParameterTypeDefaultDescription
lab_namestringmy_labLab name
lab_descriptionstringA MADSci self-driving laboratoryDescription

lab/standard

Standard lab with all managers and Docker Compose infrastructure.

madsci new lab --template standard --name my_lab

Parameters: Same as lab/minimal.

lab/distributed

Distributed lab configuration for multi-host deployments.

madsci new lab --template distributed --name production_lab
ParameterTypeDefaultDescription
lab_namestringmy_labLab name
lab_descriptionstringA distributed MADSci self-driving laboratoryDescription

Communication Templates (5)

Templates for instrument communication interfaces, used within node modules.

comm/serial

Serial port communication using pySerial patterns.

ParameterTypeDefaultDescription
interface_namestringmy_serialInterface name
interface_descriptionstringA serial port communication interfaceDescription

comm/socket

TCP/UDP socket communication interface.

ParameterTypeDefaultDescription
interface_namestringmy_socketInterface name
interface_descriptionstringA socket communication interfaceDescription

comm/rest

REST API client for HTTP-based instrument communication.

ParameterTypeDefaultDescription
interface_namestringmy_rest_clientInterface name
interface_descriptionstringA REST API client interfaceDescription

comm/sdk

Vendor SDK wrapper for instrument communication.

ParameterTypeDefaultDescription
interface_namestringmy_sdkInterface name
interface_descriptionstringA vendor SDK wrapper interfaceDescription

comm/modbus

Modbus TCP/RTU communication using pymodbus patterns.

ParameterTypeDefaultDescription
interface_namestringmy_modbusInterface name
interface_descriptionstringA Modbus communication interfaceDescription

Summary

CategoryCountTemplates
Module6basic, device, instrument, liquid_handler, camera, robot_arm
Interface4fake, real, sim, mock
Node1basic
Experiment4script, notebook, tui, node
Workflow2basic, multi_step
Workcell1basic
Lab3minimal, standard, distributed
Communication5serial, socket, rest, sdk, modbus
Total26