Compose
AI biology as code

Run Boltz, DiffDock, SBML pathways, custom dynamics, and many more lab-contained modules in one pipeline. From your terminal, your browser, or your desktop.

Boltz-2 affinity predictor lab showing predicted structure results
Try it live

See Biosimulant in action

Four real labs, running in your browser.

Boltz-2 predicted protein-ligand complex in the Biosimulant lab

Drug discovery

Predict how a drug binds, from text

Paste a protein sequence and a candidate drug. The model folds the protein, drops it into the right pocket, and scores how tightly they bind. A week of wet-lab work, in a single pass. The leap that made structure-based drug discovery practical.

View more, go to labs
The framework

One contract. Any biology standard.

Three steps. Anything else that follows the same contract, an SBML pathway, a CellML cardiac cell, a NeuroML neuron, an ONNX inference module, your own ODEs, can plug straight into your model.

  • Subclass BioModule.
  • Declare inputs() and outputs() as named ports with units.
  • Implement advance_window.

The runtime handles unit checks, time alignment, and signal delivery.

import biosimulant


class Pancreas(biosimulant.BioModule):
    def inputs(self):
        return {"glucose": biosimulant.SignalSpec.scalar(emitted_unit="mmol/L")}

    def outputs(self):
        return {"insulin": biosimulant.SignalSpec.scalar(emitted_unit="pmol/L")}

    def advance_window(self, start, end):
        ...  # advance state to `end`

    def get_outputs(self):
        return self._outputs

Talk to us about your simulation workflow

Biosimulant Platform is for teams building reusable virtual simulations across research and engineering.

  • Research teams building reusable virtual experiments instead of one-off simulations.
  • Simulation groups that need inspectable workflows, reproducible runs, and shared review loops.

Contact

Start the conversation

Tell us what you are simulating, how your team works today, and where Biosimulant might fit.

Prefer the standalone page? Use the contact page.