Skip to main content

Tesseract Core

Universal components for differentiable scientific computing 📦

Read the docs | Showcases & tutorials | 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 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

Topology-optimized bracket produced by a differentiable Tesseract pipeline

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 that is one jax.grad call away from end-to-end gradients.

[!TIP] More examples in the example gallery and community showcases.

Quick start

Demo: install, build, and run a Tesseract in under a minute
Getting started: install, build an example, and run it.

[!NOTE] Requires Docker and Python 3.10+.

CLI:

# Install Tesseract Core
$ pip install tesseract-core

# Create a new project in the current directory
$ tesseract init --name my-tesseract

# Edit `tesseract_api.py`, or download an example
$ curl -so ./tesseract_api.py https://raw.githubusercontent.com/pasteurlabs/tesseract-core/main/examples/vectoradd/tesseract_api.py

# Build it into a container
$ tesseract build .

# Run it
$ tesseract run my-tesseract apply '{"inputs": {"a": [1, 2, 3], "b": [10, 20, 30]}}'
# → {"result": [11, 22, 33]}

# Compute the Jacobian
$ tesseract run my-tesseract jacobian '{"inputs": {"a": [1, 2, 3], "b": [10, 20, 30]}, "jac_inputs": ["a"], "jac_outputs": ["result"]}'
# → {"result": {"a": [[1, 0, 0], [0, 1, 0], [0, 0, 1]]}}

Python SDK:

from tesseract_core import Tesseract

with Tesseract.from_image("my-tesseract") as t:
    result = t.apply({"a": [1, 2, 3], "b": [10, 20, 30]})
    jac = t.jacobian({"a": [1, 2, 3], "b": [10, 20, 30]}, jac_inputs=["a"], jac_outputs=["result"])

Core features

  • Containerized — Docker-based packaging ensures reproducibility and dependency isolation.
  • Multi-interface — Use the same components via CLI, REST API, and Python SDK.
  • 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.
  • Self-documenting — Auto-generated API docs and schemas for every Tesseract (tesseract apidoc <name>).

Auto-generated API documentation for a Tesseract
Auto-generated API documentation (tesseract apidoc).

The Ecosystem

  • Tesseract Core — CLI, Python SDK, and runtime (this repo).
  • Tesseract-JAX — Embed Tesseracts as JAX primitives into end-to-end differentiable JAX programs.
  • Tesseract-Torch — Embed Tesseracts as PyTorch operators into end-to-end differentiable PyTorch programs.
  • Tesseract-Streamlit — Auto-generate interactive web apps from Tesseracts.

Learn more

Citing Tesseract

If you use Tesseract in your research, please cite:

@article{TesseractCore,
  doi = {10.21105/joss.08385},
  url = {https://doi.org/10.21105/joss.08385},
  year = {2025},
  publisher = {The Open Journal},
  volume = {10},
  number = {111},
  pages = {8385},
  author = {Häfner, Dion and Lavin, Alexander},
  title = {Tesseract Core: Universal, autodiff-native software components for Simulation Intelligence},
  journal = {Journal of Open Source Software}
}

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.

Release files for tesseract-core 1.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tesseract-core 1.12.0
File Size Uploaded
tesseract_core-1.12.0.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for tesseract-core 1.12.0
File Interpreter ABI Platform
tesseract_core-1.12.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / tesseract_core-1.12.0.tar.gz

Download URL tesseract_core-1.12.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
ea22f7b4476c9d6b545e7dafe696679e1e8d2a4d1124608894c1d92c1aa05c53
BLAKE2b-256 checksum
How to use checksums
d5b3ee6638e3095b3b01c4b2273372ca18659e994e5648d8f51848cfa2261634
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release files / tesseract_core-1.12.0-py3-none-any.whl

Download URL tesseract_core-1.12.0-py3-none-any.whl
Size 193.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4ac167b73953ef56d8d520537d9b863461301c52dbd1ebb9be2788ee133f542
BLAKE2b-256 checksum
How to use checksums
e970db293a954223f5f5d88292e5c791ab3fb426758779a9cddf96843275a28b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release history Release notifications | RSS feed

1.14.0

2 release files

1.13.0

2 release files

This release

1.12.0 This release

2 release files

1.11.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.10.2

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page