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 |
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| eclise-0.3.0.tar.gz | 338.5 kB | Without provenance | Details for eclise-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| eclise-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for eclise-0.3.0-py3-none-any.whl |
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
|
Security for eclise 0.3.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.