Skip to main content

eclise

Shared research infrastructure: one eclise wheel under the PEP 420 namespace eclise.*. Import path equals folder path equals taxonomy — one source tree src/eclise/. Heavy stacks live in pixi environments, not in wheel metadata.

Extras (the published wheel)

Extra Import Purpose
utils eclise.utils Research utilities (tensor/module batching, linalg, ARE/ODE, labeled arrays, plotting)
ode eclise.utils.ode torchdiffeq for batch_odeint
imagenet eclise.datasets.imagenet Adapters for consuming external datasets (ImageNet-1k val sampling, label tables)
clips eclise.contracts.clips First-party clip-shard data contract (mp4-in-HDF5 + per-frame state labels)
vla eclise.contracts.vla Sim-/model-agnostic VLA obs/action schema + websocket env/policy serving
all utils + imagenet + clips + vla
dev all + pytest

eclise.models.{octo,smolvla,pi0}, eclise.sims.{libero,phyworld}, eclise.datasets.openvid, and eclise.launch ship as inert source in the same wheel. Running a server or generator needs the matching pixi environment (or python -m eclise.launch).

models/vision/ is deliberately absent: a vision-model contract will be created only once it has at least two real consumers.

Pixi environments (from a checkout)

Environment Python Kind Purpose
dev 3.12 library eclise[dev] + contract/launcher tests
libero 3.10 socket (env-server, port 9000) LIBERO + robosuite/MuJoCo harness
octo 3.10 socket (policy, port 8000) Octo JAX 0.4.20 policy server
smolvla 3.12 socket (policy, port 8000) SmolVLA (LeRobot) policy server
pi0 3.11 socket (policy, port 8000) Tooling for upstream openpi (uv / git-lfs / gsutil)
phyworld 3.10 batch Box2D families → eclise.contracts.clips shards
phyworld-phyre 3.9 batch PHYRE combinatorial family (phyre==0.2.2)
openvid 3.10 batch OpenVid-1M mp4 → 256px fixed-FPS shards

Installing

Client-side (numpy-1.x-safe eclise.contracts.vla only — no torch/jax):

pip install "eclise[vla]"
python -m eclise.launch start octo --setup

--setup clones this repo at eclise-v<wheel version> (unless ECLISE_ROOT already points at a checkout), installs pixi if needed, and runs pixi install -e <env>. start returns a host/port; the caller wires WebsocketPolicyClient / WebsocketEnvClient.

From a checkout:

pixi install -e dev
pixi run -e dev test
pixi run -e libero setup
pixi run -e libero serve --port 9000

Developing

pixi run -e dev test
pixi run -e libero serve
pixi run -e phyworld generate --family collision --grid in_dist_l0 --experiment smoke --limit 32
python -m eclise.sims.phyworld generate --family collision --grid in_dist_l0 --experiment smoke --limit 32

Editable extras without pixi: pip install -e ".[dev]". Releases are tagged eclise-v<version> (current: eclise-v0.3.0).

Runtime data (ECLISE_DATA_ROOT / $SCRATCH)

Runtime trees (data/, outputs/, logs/) are not part of the source taxonomy. eclise.paths.data_root() / outputs_root() resolve, in order:

  1. ECLISE_DATA_ROOT / ECLISE_OUTPUTS_ROOT if set
  2. $SCRATCH/eclise/{data,outputs} if SCRATCH is set
  3. <repo>/{data,outputs}

Packages then pick a leaf (data_root() / "phyworld", outputs_root() / "libero"). On quota-capped hosts, set SCRATCH (or the explicit ECLISE_*_ROOT vars) so large artifacts never land on the home quota. There are no scratch-symlink setup tasks.

Design rules

  • One distribution, environments at the pixi boundary. Incompatible stacks (JAX vs torch, numpy 1.x vs 2.x) do not share an environment. Wheel extras stay light; pixi features own the heavy pins.
  • Import path == folder path == taxonomy. Moving a package is a breaking import change; there is one tree and no alias extras.
  • eclise.contracts.clips and eclise.contracts.vla are contracts. Writers and readers may live in different repos/envs; document schema changes in CHANGELOG.md. eclise[vla] must remain numpy 1.x-compatible.

Package archetypes

Every package is one of three kinds. Archetype is recorded in the launcher kind and the pixi feature shape, not in folders.

Library extra — published wheel, installed into a consumer's env, no server. utils, imagenet, clips, vla.

Interactive socket service — pixi env isolates an incompatible stack behind an eclise.contracts.vla websocket. octo, smolvla, pi0, libero.

  • Env: pixi install -e <name> (and pixi run -e <name> setup when the feature defines a setup task).
  • Server logic lives in the package; the CLI is python -m eclise.<pkg> serve (pi0 wraps upstream openpi instead).
  • Launch: python -m eclise.launch start <name> → pixi run -e <env> serve.

Batch producer — pixi env; decoupled via the on-disk eclise.contracts.clips shard contract (no socket). phyworld, openvid.

  • Env: pixi install -e <name> (no scratch-symlink setup task).
  • Job entrypoint: python -m eclise.<pkg> <verb> (+ .sbatch via pixi run -e <env>).
Package Archetype
utils, imagenet, clips, vla library extra
octo, smolvla, libero interactive socket service (python -m eclise.<pkg> serve)
pi0 interactive socket service (setup_pi0.sh + serve_pi0.sh wrap openpi)
phyworld batch producer (phyworld-phyre is the PHYRE secondary env)
openvid batch producer

Release files for eclise 0.3.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 eclise 0.3.0
File Size Uploaded
eclise-0.3.0.tar.gz 338.5 kB Details

Built distribution (wheel)

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

Total release size: 610.3 kB

Release files / eclise-0.3.0.tar.gz

Download URL eclise-0.3.0.tar.gz
Size 338.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e6c9c2d66431eaac9543ff44cc13e245356a437848c36e15086c5ebe61185aa7
BLAKE2b-256 checksum
How to use checksums
095f8e86bbe47ab82de525257217a642f7232da4b18d560f03732eb264499ff0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / eclise-0.3.0-py3-none-any.whl

Download URL eclise-0.3.0-py3-none-any.whl
Size 271.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
90d3388e535c7f9618bf09eb78809d113cfe234d49cc374eefb33470b5eeb0dd
BLAKE2b-256 checksum
How to use checksums
10c68d6fa6d08bb7e30fd3f33df47c8e78601b68b204e2ef50a69d15cfe2d1fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

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