Semphony - Licensed to TU/e Multiscale Lab logo
Open source from TU/e Multiscale Lab

Fully Automated In-Situ Experiments

Coordinate systems, devices, and imaging pipelines from a single control server. Start simple and grow into fully automated, multi-PC experiments when you're ready.

insitu_tensile.py
tescan = ImagingSystem("tescan-001", apiKey)
kamm = DeformationSystem("kammWeis-001", kammApiKey)
run = semphony.run("insitu_tensile_dic", resume=True)

with run.session() as s:
    tescan.attach(s)
    kamm.attach(s)

    # Find the previously examined ROIs using ZNCC
    tescan.imaging.find_roi("sn_calibration_specimen", fov_um=50)
    tescan.imaging.autofocus(stigm=True, wd=True)
    tescan.imaging.find_roi("user_roi_1", fov_um=100)

    displ_increment_um = 25
    for i in range(1, 10):
        kamm.inc(um=displ_increment_um, speed_um_per_s=10)
        tescan.imaging.find_roi("user_roi_1", fov_um=100)
        tescan.imaging.acquire()
        run.checkpoint("increment_acquired", {"increment_um": displ_increment_um * ..
nmi_classif.py
# Capture BSE survey → find inclusions → zoom + EDS per particle
bse_result = sem.imaging.acquire(
    AcquisitionConfig(mode="BSE", fov_um=200, resolution=(1024, 1024)),
    download=True)
finder = InclusionFinder(bse_result, fov_um=200, stage=sem.stage.get_pos())
inclusions = finder.find()

for i, inc in enumerate(inclusions):
    sem.stage.move_to(inc["x_mm"], inc["y_mm"])
    sem.imaging.set_view_field(fov_um=20)
    eds.acquire_spectrum(
        EDSSpectrumConfig(target_path=f"inclusion_{i}.msa", time_sec=10), download=True)

Built for  Real Labs

Designed by researchers, for researchers. Semphony bridges the gap between complex multi-device setups and reproducible experimental workflows.

Deep SDK Integration

Uses manufacturer SDKs whenever possible for deep integration, while still supporting GUI-based control when that's the only option.

Multi-Instrument Orchestration

Orchestrates experiments and imaging across SEMs, optical microscopes, deformation devices, and other instruments.

Scale at Your Pace

Lets you start simple and gradually increase complexity as your automation needs grow. No need to commit to full automation upfront.