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-v0.2.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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eclise-0.2.0.tar.gz (332.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eclise-0.2.0-py3-none-any.whl (267.2 kB view details)

Uploaded Python 3

File details

Details for the file eclise-0.2.0.tar.gz.

File metadata

  • Download URL: eclise-0.2.0.tar.gz
  • Upload date:
  • Size: 332.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for eclise-0.2.0.tar.gz
Algorithm Hash digest
SHA256 39d3c54220431efba2c390686afdf3a9c3a1dc11b12365cb16a4e1eea3be0c5e
MD5 cd40c6d83a59e10e97565b1770db471d
BLAKE2b-256 729021b3acab2145accdda15fc91c941c1c782db54fb2fd96224eeb33c5175b6

See more details on using hashes here.

File details

Details for the file eclise-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: eclise-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 267.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for eclise-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2601f4e8cf73eebddc5190aa40be7ae78052f5553cdd2e0a76eb8fbb073adf0
MD5 01d0175a3c89752daf8ff69befa66363
BLAKE2b-256 20d6cb53facfe9bd9a441d9936f5680dfa0118773be4c6cfdeb149b6792e645d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 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