Skip to main content

Horopter

Title page of Opticae thesaurus (Basel, 1572)

Horopter: the set of points that both eyes see as one.

Code: MIT (LICENSE). Weights, data recipe and docs: CC BY-NC-SA 4.0 (research, non-commercial). Weights: horopter-0.4B, horopter-1B (first release, 2026-10-20).

Horopter is an encoder-only decision model. Give it a state (a document, a record or a JSON object) and typed questions about it (yes/no, choose one, score on a scale). It answers them in one pass, and for every answer it also returns:

  • evidence: whole-word spans in the state that support or refute each option;
  • relation: whether the state bears on the question at all, and with what stance (support / refute / undetermined);
  • abstention: a calibrated probability that the answer is wrong, with a reason (unrelated, model_uncertainty).

The state is encoded once, without seeing any question, and cached. Each question reads that cached state, so:

  • adding a question never changes the answers to the others;
  • asking many questions about one state costs about one encoding.

Built on Ettin encoders (400M and 1B), from Fight Fire with Fire Robotics.

Status

First release, 2026-10-20: horopter-0.4B (horopter-0.4b-20261020) and horopter-1B (horopter-1b-20261020). Router + adapters, one pass:

Horopter 1B Horopter 0.4B mbnli-3 beta 1B (internal) best 4–9B decoder we tested
grounding (LLM-AggreFact balanced accuracy) 75.7 74.8 75.7 77.2
4-way relation (macro-F1) 78.6 76.6 78.6 75.3
multi-step policy decisions (JevBench hard) 40.5 36.0 44.1 64.0
generated policies, one pass (prose) 97.7 95.0 53.6

The full tables and limits are in the model cards. Grounding and relation are level with 4–9B decoders. Multi-step policy decisions on real text trail them by about 20 points. This release has rule-application data with always-determined answers, so it rarely says "more information needed" on real rule text.

Layout

horopter/     model, packing, losses, runtime (adapters), evidence, abstention, server (typed wire format)
horopter/fast/  fast path: state cache, CUDA graphs, block-sparse state attention, all adapters in one pass
training/     joint trainer, adapter / evidence trainers, abstention head fit, data builders, recipes/beta2.md
eval/         benchmark scorers (E37 bench, E40 rule evals) and the HTTP client
scripts/      export_hf.py: training checkpoint -> HF layout
tests/        parity against the research code; fast path against the release path
docs/         release plan, porting notes (docs/PORTING.md), fast path (docs/FAST_PATH.md)
assets/       theme art (public domain)
pip install horopter

The first load of a hub id downloads the weights from Hugging Face (about 0.8 GB for the 0.4B) and caches them.

import horopter
m = horopter.load("jmccardle/horopter-0.4B")    # a hub id, or a local directory in the exported HF layout
out = m.answer("Refunds within 30 days. The lamp was bought 12 days ago.",
               {"q": {"type": "noul", "instructions": "Is a refund allowed?"}}, evidence=True)

Server: python -m horopter.server --model jmccardle/horopter-0.4B --port 8420 --fast (add --device cpu on a machine without a GPU).

--fast serves the same answers (up to bf16 rounding) 3–19× faster on a GPU, and caches states on a CPU: a state asked about again costs only its question tokens. Measurements, settings and memory are in docs/FAST_PATH.md.

Credits

Title page of Opticae thesaurus (Friedrich Risner ed., Basel 1572), Bayerische Staatsbibliothek; public domain (Wikimedia Commons, Thesaurus_opticus_Titelblatt.jpg).

Metadata

Release files for horopter 0.0.1

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

Source distribution (sdist)

Source distribution for horopter 0.0.1
File Size Uploaded Provenance
horopter-0.0.1.tar.gz 62.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for horopter 0.0.1
File Interpreter ABI Platform
horopter-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 124.0 kB

Release files / horopter-0.0.1.tar.gz

Download URL horopter-0.0.1.tar.gz
Size 62.7 kB
Tags Source
SHA-256 checksum
How to use checksums
faa7d7ce500588cd0ff5784ada8666d9c9d03852693b9f31d87f2736d1e484c9
BLAKE2b-256 checksum
How to use checksums
443c485dc25af101d8ec23c5cf048a7280b9a3b833bad90c9d0f8e4222f7208e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / horopter-0.0.1-py3-none-any.whl

Download URL horopter-0.0.1-py3-none-any.whl
Size 61.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee910a5a1154e74af473e6982518a4a4293bdee3980e5e571ece8a96080a3ab3
BLAKE2b-256 checksum
How to use checksums
2f9dc70d15c67dfd0b36ccdc1c069f41dbf3f3c4618c814457d3309c9ab70d12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Security for horopter 0.0.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for horopter-0.0.1.tar.gz

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 Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files Full provenance

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