eclise
Shared research infrastructure: one eclise wheel under the PEP 420 namespace
eclise.*. The folder taxonomy is organizational only — imports are always
flat eclise.<name>. 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 |
datasets |
eclise.datasets |
Adapters for consuming external datasets (ImageNet-1k val sampling, label tables) |
clips |
eclise.clips |
First-party clip-shard data contract (mp4-in-HDF5 + per-frame state labels) |
vla |
eclise.vla |
Sim-/model-agnostic VLA obs/action schema + websocket env/policy serving |
octo / smolvla / pi0 / libero |
(client aliases) | eclise[vla] — talking to a server, not installing its stack |
all |
utils + datasets + clips + vla | |
dev |
all + pytest |
eclise.octo / smolvla / libero / phyworld / openvid / pi0 / 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.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.vla only — no torch/jax):
pip install "eclise[octo,libero]"
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
Editable extras without pixi: pip install -e ".[dev]". Releases are tagged
eclise-v0.1.0.
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.
- Imports are flat, folders carry taxonomy. Moving a package between folders is never a breaking change for consumers.
eclise.clipsandeclise.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. New packages pick one and follow its rules rather than inventing a fourth layout.
Library extra — published wheel, installed into a consumer's env, no
server. utils, datasets, clips, vla.
Interactive socket service — pixi env isolates an incompatible stack
behind an eclise.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 as
eclise.<name>.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.clips
shard contract (no socket). phyworld, openvid.
- Env:
pixi install -e <name>+pixi run -e <name> setup(scratchdata//outputs/symlinks). - Job entrypoint:
scripts/<verb>.py(+.sbatchviapixi run -e <env>). - Producer verify:
scripts/verify_shards.py.
| Package | Archetype |
|---|---|
utils, datasets, clips, vla |
library extra |
octo, smolvla, libero |
interactive socket service (eclise.<name>.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 |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eclise-0.1.0.tar.gz.
File metadata
- Download URL: eclise-0.1.0.tar.gz
- Upload date:
- Size: 311.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8f32a5f69eaa68af44f4f597afd938310fa00f08934719a7b8fe57b141804a5
|
|
| MD5 |
3eb21b5c8b12b1529c48c2d93acf62bb
|
|
| BLAKE2b-256 |
adcfd9240d0c377b64b52f164f2a01b3018790e616ce5b33337bf2a03826b803
|
File details
Details for the file eclise-0.1.0-py3-none-any.whl.
File metadata
- Download URL: eclise-0.1.0-py3-none-any.whl
- Upload date:
- Size: 235.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6e20e248e8dee96d55c5995b5b5bf53c32b41ca2c2f578280c783dc9593f2cb
|
|
| MD5 |
c6cf1c460eaf5d9705bab1d65fc0b08e
|
|
| BLAKE2b-256 |
3e995675faaa1a0e5d7cd707e194e1005d795451ec0ae3aae58cee47685cbbc7
|