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:
ECLISE_DATA_ROOT/ECLISE_OUTPUTS_ROOTif set$SCRATCH/eclise/{data,outputs}ifSCRATCHis set<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.clipsandeclise.contracts.vlaare contracts. Writers and readers may live in different repos/envs; document schema changes inCHANGELOG.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>(andpixi run -e <name> setupwhen the feature defines asetuptask). - 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-symlinksetuptask). - Job entrypoint:
python -m eclise.<pkg> <verb>(+.sbatchviapixi 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)
| File | Size | Uploaded | |
|---|---|---|---|
| eclise-0.3.0.tar.gz | 338.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|