Skip to content

pasteurlabs/tesseract-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

379 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Tesseract Core

Universal, autodiff-native software components for Simulation Intelligence πŸ“¦

Read the docs | Report an issue | Community forum | Contribute


DOI SciPy

The problem

Real-world scientific workflows span multiple tools, languages, and computing environments. You might have a mesh generator in C++, a solver in Julia, and post-processing in Python. Getting these to work together is painful. Getting gradients to flow through them for optimization is nearly impossible.

Existing autodiff frameworks work great within a single codebase, but fall short when your pipeline crosses framework boundaries or includes legacy/commercial tools.

The solution

Tesseract packages scientific software into self-contained, portable components that:

  • Run anywhere β€” Local machines, cloud, HPC clusters. Same container, same results.
  • Expose clean interfaces β€” CLI, REST API, and Python SDK. No more deciphering undocumented scripts.
  • Propagate gradients β€” Each component can expose derivatives, enabling end-to-end optimization across heterogeneous pipelines.
  • Self-document β€” Schemas, types, and API docs are generated automatically.

Who is this for?

  • Researchers interfacing with (differentiable) simulators or probabilistic models, or who need to combine tools from different ecosystems
  • R&D engineers packaging research code for use by others, without spending weeks on DevOps
  • Platform engineers deploying scientific workloads at scale with consistent interfaces and dependency isolation

Example: Shape optimization across tools

The rocket fin optimization case study combines three Tesseracts:

[SpaceClaim geometry] β†’ [Mesh + SDF] β†’ [PyMAPDL FEA solver]
         ↑                                      |
         └──────── gradients flow back β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Each component uses a different differentiation strategy (analytic adjoints, finite differences, JAX autodiff), yet they compose into a single optimizable pipeline.

Quick start

Note

Requires Docker and Python 3.10+.

$ pip install tesseract-core

# Clone and build an example
$ git clone https://github.com/pasteurlabs/tesseract-core
$ tesseract build tesseract-core/examples/vectoradd

# Run it
$ tesseract run vectoradd apply '{"inputs": {"a": [1, 2], "b": [3, 4]}}'
# β†’ {"result": [4.0, 6.0], ...}

# Compute the Jacobian
$ tesseract run vectoradd jacobian '{"inputs": {"a": [1, 2], "b": [3, 4]}, "jac_inputs": ["a"], "jac_outputs": ["result"]}'

# See auto-generated API docs
$ tesseract apidoc vectoradd

Core features

  • Containerized β€” Docker-based packaging ensures reproducibility and dependency isolation
  • Multi-interface β€” CLI, REST API, and Python SDK for the same component
  • Differentiable β€” First-class support for Jacobians, JVPs, and VJPs across component and network boundaries
  • Schema-validated β€” Pydantic models define explicit input/output contracts
  • Language-agnostic β€” Wrap Python, Julia, C++, Fortran, or any executable behind a thin Python API

Ecosystem

  • tesseract-core β€” CLI, Python API, and runtime (this repo)
  • Tesseract-JAX β€” Embed Tesseracts as JAX primitives into end-to-end differentiable JAX programs
  • Tesseract-Streamlit β€” Auto-generate interactive web apps from Tesseracts

Learn more

License

Tesseract Core is licensed under the Apache License 2.0 and is free to use, modify, and distribute (under the terms of the license).

Tesseract is a registered trademark of Pasteur Labs, Inc. and may not be used without permission.