Dream Engines

Changelog

The canonical version-history file lives at sdk/python/CHANGELOG.md in the engine repo. This page mirrors the most recent entries; for the full history (and per-PR commit links) check that file or the GitHub releases.


[0.1.0] — 2026-05-05

First stable release. Default pip install dream-engine resolves here.

Added (vs. 0.1.0a1)

  • Pillow moved to base dependencies — required by ModelHandle.predict(start_frame=np.ndarray | PIL.Image) and surfaced as InputValidationError if missing.

Fixed (vs. 0.1.0a1)

  • httpx upper bound — capped at <1.0 to avoid pip pulling pre-release httpx==1.0.dev* (which removed httpx.Timeout) when users opt in to --pre resolution.
  • Follow HTTP redirects — both sync Client and AsyncClient now pass follow_redirects=True to httpx. Modal's async-execution layer issues a 303 to ?__modal_function_call_id=... on every asgi_app endpoint; without redirect-following the SDK saw the 303 directly and mis-classified it as a 4xx ValidationError. Regression test added.
  • dream.examples.dreamdojo_grasp() — fixture now returns 48 action frames (chunk-aligned) instead of 49. The canonical regression-suite rollouts run 48 frames; 49 triggers a known engine bug on the trailing 1-frame partial chunk.

Verified

  • Live smoke against deployed Modal engine using a real teleop fixture. engine_wall_s = 2.44s, cost_usd = $0.0245, rollout visually matches the regression reference.

[0.1.0a1] — 2026-05-05

First public pre-release. Hidden from default pip install unless callers opt in with --pre.

Added

  • dream.Client (sync) and dream.AsyncClient (async).
  • client.models.list() / .get(slug) typed catalog access.
  • ModelHandle.predict(start_frame=, actions=) with input coercion + validation; returns Rollout (frames, save, video, cost_usd, wall_s).
  • ModelHandle.predict_batch for K-candidate visual MPC; returns BatchRollout (iterable, indexable).
  • Typed error taxonomy: DreamErrorAuthError, RateLimitError(retry_after), ModelNotFoundError, ValidationError, ServerError, EngineError, ModelNotActiveError, InputValidationError.
  • Automatic retries on 429/502/503/504/transport with exponential backoff + jitter + Retry-After honor.
  • dream.examples.dreamdojo_grasp() — bundled deterministic synthetic (start_frame, actions).
  • Server-side: GET /v1/models and GET /v1/models/{slug} endpoints added to the Dream Engine HTTP gateway.