# DreamLake > DreamLake is ML experiment tracking for robotics and embodied AI — record, store, browse, and search multimodal data, publish renderable artifacts, and run remote compute. ## Overview - [DreamLake](https://docs.dreamlake.ai/index.md): ML experiment tracking for robotics and embodied AI — install the CLI in one command, upload your first episode, and organize recordings into bindrs and datasets. - [ML-Dash](https://docs.dreamlake.ai/ml-dash.md): ML experiment tracking — install the Python SDK and the ml-dash CLI, track your first run locally, then send it to dash.ml. - [Architecture](https://docs.dreamlake.ai/architecture.md): How DreamLake fits together — the data model, node tree, two-token auth flow, and the upload pipeline. - [Authentication](https://docs.dreamlake.ai/ml-dash/get-started/authentication.md): Log in with the ml-dash CLI, where the token is stored, how the Python SDK picks it up, and how the device flow works. ## Notes - [Linked note items](https://docs.dreamlake.ai/notes/linked-items.md): Turn a list item into a note and open it beside the parent. - [Markdown authoring](https://docs.dreamlake.ai/notes/markdown.md): Write Notes with headings, lists, links, tables and inline text color and highlights. - [Embeds and query arguments](https://docs.dreamlake.ai/notes/embeds.md): Embed artifacts and web pages with responsive sizing and pass public configuration through their query APIs. ## Guides - [Annotations](https://docs.dreamlake.ai/annotations.md): How a video and its annotation layers become one episode you can play and keep extending in the dashboard — the picture-first tour. The SDK calls live in the Annotations Reference. - [Sim rollouts](https://docs.dreamlake.ai/sim-rollouts.md): Turn a trained policy into an MCAP DreamLake plays natively — the agent's mesh moving through the scene, every reward and joint as a synced chart. Roll out, upload, drop a .dreamrc. - [Video SDK](https://docs.dreamlake.ai/video.md): Load, slice, and batch video in Python with lazy NumPy-style indexing — frames, clips, and tensors in one line. - [Semantic Search](https://docs.dreamlake.ai/search.md): Query hours of footage with natural language — CLIP embeddings over 2-second HLS chunks, indexed in Qdrant. - [Profiles and workspaces](https://docs.dreamlake.ai/workspaces.md): Browse a namespace through its profile or workspace, with resources and actions determined by your access. - [Artifacts](https://docs.dreamlake.ai/artifacts.md): Push a renderable file, get a live page — versioned, shareable, and safe to delete. The five-minute artifacts guide. - [Generate & Hosted Pages](https://docs.dreamlake.ai/hosted-pages.md): How DreamLake generates and hosts AI-written React pages — live containers, chat-driven edits over HMR, and the security model. - [Notes](https://docs.dreamlake.ai/notes.md): Read, search, create and edit DreamLake Notes with the CLI, including focused section reads, revision-safe patches and live collaboration. Use Python or TypeScript APIs only when the CLI cannot perform the required operation or SDK integration is explicitly requested. - [Visualize a source](https://docs.dreamlake.ai/sources.md): Link your storage as a source, drop one .dreamrc at the dataset root, and DreamLake renders every episode — the picture-first source-visualization guide. - [LLM Relay](https://docs.dreamlake.ai/relay.md): Call a chat model with your DreamLake token instead of a provider API key. Point any Anthropic-compatible client at the relay and it just works. - [Environment files in Vault](https://docs.dreamlake.ai/vault/environment-files.md): Save and restore development and production .env files with the DreamLake CLI. - [Envs](https://docs.dreamlake.ai/envs.md): Push a MuJoCo scene or URDF robot directory, get an interactive 3D page — versioned, deduplicated, and pullable byte-for-byte. The five-minute envs guide. - [Organization and team vaults](https://docs.dreamlake.ai/vault/shared-scopes.md): Choose a personal, organization, or team vault when saving secrets in the dashboard. - [Libraries](https://docs.dreamlake.ai/libraries.md): Push a directory of 3D assets with zero config — the CLI discovers assets by convention — search it per asset (keyword or semantic), preview any model in the browser, and pull your source tree back byte-for-byte. The asset-libraries guide. - [Scene Generation Quickstart](https://docs.dreamlake.ai/scene-generation/quickstart.md): Install the dreamlake-scene-generation agent skill and build, edit, and reuse physically valid MuJoCo scenes with ordinary prompts — what the skill gives you, how to install it, and what a finished run leaves behind. - [Scene Generation](https://docs.dreamlake.ai/scene-generation.md): Build attractive, physically meaningful MuJoCo scenes from assets of any origin — internet models, your own files, procedural MJCF, or DreamLake libraries — derive placements from measured geometry, validate contacts and stability, publish, preview, and iterate. - [Billing and credits](https://docs.dreamlake.ai/billing.md): Understand proposed DreamLake subscriptions, resource rates, and credit controls. ## Workflows - [Workflows](https://docs.dreamlake.ai/workflows.md): Describe a data-production goal, push a typed graph spec, and review it on a live canvas — versioned, hot-reloading, agent-ready. The five-minute workflows guide. - [CJS Workflows vs Python Pipelines](https://docs.dreamlake.ai/workflows/cjs-vs-python.md): Two systems that share a word — a JavaScript orchestration script whose graph is a runtime trace, and a Python pipeline whose graph is derived statically from source. What each can express, and what neither can. - [Workflow Node Types](https://docs.dreamlake.ai/workflows/node-types.md): The typed node vocabulary of DreamLake workflows — stages, compute (UDF), agents (UDA), samplers, control flow, and the artifact type system on every edge. - [Agent Permissions](https://docs.dreamlake.ai/workflows/agent-permissions.md): The permission grant taxonomy for user-defined agents — IAM-style domain.resource.verb strings, the verb set, scoped grants, and how tools differ from permissions. ## Reference - [CLI Reference](https://docs.dreamlake.ai/cli.md): Every dreamlake command — auth, file transfer, collections, semantic-search vectorization, renderable artifacts, and simulation envs. - [API Reference](https://docs.dreamlake.ai/api.md): The DreamLake REST surface — auth, namespaces, episodes, nodes, files, tracks, parameters, collections, artifacts, envs, and search. - [Annotations Reference](https://docs.dreamlake.ai/annotations/reference.md): The annotation family — the generic Annotation for custom schemas (Schema, Track, rows), the VideoAnnotation preset, Episode, annotation formats, and the storage semantics behind them. - [Project and Note queries](https://docs.dreamlake.ai/api/project-queries.md): GraphQL reads and equivalent REST views for project choices, Note locations, and Bindr choices. - [Env Layers Reference](https://docs.dreamlake.ai/envs/layers.md): The dreamlake.layers.json contract — the v3 component grammar (Merge / Attach / Update / Remove / Patch), field by field, with the composition semantics, six annotated stacks, push discipline, and the common compose errors. - [Libraries Reference](https://docs.dreamlake.ai/libraries/reference.md): The machine contract behind asset libraries — every HTTP endpoint with request and response shapes, the dreamlake.assets/v1 wire manifest, the search hit schema, limits, and the read patterns a program or agent composes them into. - [API Reference](https://docs.dreamlake.ai/ml-dash/reference/api.md): Every public class, accessor, and method in the ml-dash Python SDK, with signatures and return types. - [CLI Reference](https://docs.dreamlake.ai/ml-dash/reference/cli.md): Every ml-dash command and flag: login, profile, list, create, remove, upload, download, api, update, and version. - [LLM-Readable Docs](https://docs.dreamlake.ai/ml-dash/reference/llm-readable.md): Every ML-Dash page is available as clean markdown, and is included in the docs.dreamlake.ai llms.txt index, full-corpus dump, and importable agent skill. ## Lakeshore - [Overview](https://docs.dreamlake.ai/lakeshore.md): Lakeshore is DreamLake's elastic compute fabric — decorate a Python function with @udf, call it, and get the result back from a remote worker. - [Quick start](https://docs.dreamlake.ai/lakeshore/quickstart.md): Run your first Python function through a local queue, then point the SDK at an existing Lakeshore service. - [Setting Up Lakeshore Service](https://docs.dreamlake.ai/lakeshore/setting-up-lakeshore-service.md): Host a Lakeshore control-plane server and create its first namespace and client login. - [Connect Lakeshore to DreamLake](https://docs.dreamlake.ai/lakeshore/connect-to-dreamlake.md): Connect an existing Lakeshore service to DreamLake and inspect its queues, workers, and jobs. - [Local dev loop](https://docs.dreamlake.ai/lakeshore/local-dev.md): Bring the whole stack up on one laptop with no cloud account and no release download — Mongo, a control plane in open mode, a nymph binary you built yourself and installed over file://, and a result published into your own DreamLake scope. ## Pipelines - [Simple functions](https://docs.dreamlake.ai/lakeshore/patterns.md): The composition shapes @udf supports — sync, async, generator and async-generator bodies, chaining them together, and scoped key-based returns. - [Preloaded functions](https://docs.dreamlake.ai/lakeshore/preloaded.md): The UDF type that carries expensive state — model weights loaded once and reused across invocations, why the worker process is what makes it work, and the queue settings that keep it warm. - [Command line programs](https://docs.dreamlake.ai/lakeshore/command-programs.md): The second UDF type — a program invoked by command line rather than imported. Declare its interface with params-proto, invoke it through a queue, and read the wire payload it becomes. - [Agents](https://docs.dreamlake.ai/lakeshore/agents.md): An agent is a name and a prompt. Optionally Claude's tools, model and permissions; optionally an attached RunConfig; optionally typed prompt arguments. The spec, the CLI, and what is stored today. - [Agent execution overview](https://docs.dreamlake.ai/lakeshore/agents/overview.md): An agent is a name and a prompt. Optionally Claude's tools, model and permissions; optionally an attached RunConfig when it needs a machine; optionally typed arguments substituted into its prompt at dispatch. ## Registry - [The Registry](https://docs.dreamlake.ai/lakeshore/registry.md): How a UDF, session or agent gets a name and a version history — the mutable head, the immutable content-addressed version rows, the RunConfig that says where it runs, and the four things that are not versioned at all. - [Importing from the Registry](https://docs.dreamlake.ai/lakeshore/registry/import.md): Finding a UDF or an agent someone else declared, pinning it to an exact revision, pulling its source, and running it — plus the four things the import path genuinely cannot do yet. ## Platform - [Panels and agent control](https://docs.dreamlake.ai/notes/panels.md): Native Notes and artifact panels with reusable previews, pinned tabs and an agent-facing layout controller. ## Hosts - [Enroll a host](https://docs.dreamlake.ai/lakeshore/hosts/enroll.md): SSH host enrollment and status through the shared CLI and Python API. - [Host credentials](https://docs.dreamlake.ai/lakeshore/hosts/credentials.md): Read and compose vault secrets, sync credentials, and manage access and retirement. - [Remote agent setup](https://docs.dreamlake.ai/lakeshore/hosts/remote-agent-environment.md): Connect to a remote machine, prepare a development checkout, and transfer selected credentials with DreamLake. - [Test and monitor runs](https://docs.dreamlake.ai/lakeshore/hosts/testing.md): Manual CLI and Python checks for enrollment, tracked execution, logs, and cancellation. ## Working with Storage - [Declaring access](https://docs.dreamlake.ai/lakeshore/access.md): How a UDF whitelists what it may read, what it may write, and which S3 mounts it needs — on the decorator, or once for the whole repo in .dreamrc. - [Sources (DreamDB)](https://docs.dreamlake.ai/lakeshore/dreamdb.md): Create a DreamDB source, define a collection schema, and push sliced, streamable video — all from the terminal. - [Mounting Storage](https://docs.dreamlake.ai/lakeshore/mounts.md): Attaching a shared filesystem to a job — the ten mount kinds, $secret credentials, the CLI and HTTP surfaces, and how the model lines up against a jaynes mount config. ## Run Configs - [Code snapshots](https://docs.dreamlake.ai/lakeshore/code-snapshots.md): A code snapshot is one captured tree of one repo, archived once and reused by every invocation that shares its commit. This is the interface — HTTP, Python, CLI, and the envelope the worker actually reads. - [Host Setup](https://docs.dreamlake.ai/lakeshore/host-setup.md): What runs on a worker before it takes work — the bootstrap script at instance creation, the setup-command FIFO a daemon drains as it polls, and the CLI and HTTP surfaces that seed both. - [Worker lifecycle](https://docs.dreamlake.ai/lakeshore/lifecycle.md): The phases a nymph daemon moves through — booting, setup, ready, draining, terminating — how each projects onto the control plane's worker state, and which exits the daemon reports rather than the control plane inferring. - [Run with Vault credentials](https://docs.dreamlake.ai/lakeshore/private-runs.md): Submit a pinned checkout with explicit credential mappings, recover its receipt, and request cancellation. ## Pipeline Functions - [Pipeline Functions](https://docs.dreamlake.ai/pipelines.md): The authoring vocabulary of DreamLake pipelines — how a Python module becomes a typed DAG, the node and edge schema, and what the static tracer can and cannot see. - [@dl.pipeline](https://docs.dreamlake.ai/pipelines/pipeline.md): The single entry point of a DreamLake pipeline — a zero-argument function whose body the tracer walks statically to derive the graph. - [@ls.udf](https://docs.dreamlake.ai/pipelines/udf.md): The node decorator — how function parameters become input ports and a return annotation becomes the output's column schema. - [Sources and Sinks](https://docs.dreamlake.ai/pipelines/sources-and-sinks.md): Where data enters and leaves a pipeline — kind="source", kind="sink", and the to_dataset / requeue terminals that must be wrapped inside one. - [Transform and Merge](https://docs.dreamlake.ai/pipelines/transform-and-merge.md): The default node kind, and the fan-in rule that turns it into a merge — how calling one UDF N times produces N nodes and how they converge. - [Review and Masks](https://docs.dreamlake.ai/pipelines/review-and-masks.md): The gate node and the boolean-mask algebra — why ~, &, | and a subscript produce dashed edges instead of nodes, and how data dominates mask. - [Sampling](https://docs.dreamlake.ai/pipelines/sampling.md): Tapping a subset off the main stream — the mask subscript is the pipeline model's only sampler, and the real strategy samplers live in the workflow model. - [batch() and stream()](https://docs.dreamlake.ai/pipelines/batching.md): The one exemption from the everything-is-a-UDF rule — a for-loop iterator that adds no node and passes the source's provenance straight to the loop variable. - [Control Flow](https://docs.dreamlake.ai/pipelines/control-flow.md): What the static tracer keeps and what it loses — both branches of an if, one pass through a loop, a comprehension as a map, and the condition it never draws. - [Model Functions](https://docs.dreamlake.ai/pipelines/model-functions.md): The canonical node functional API — thirty-three vision, text, audio, video and multimodal entry points, their output record types, and the Hugging Face task mapping behind them. ## Queues - [Queue model](https://docs.dreamlake.ai/lakeshore/queues.md): The Queue record field by field — the scheduling surface, the launch policy, how a queue is named and prefixed, and which fields are stored ahead of being enforced. - [Task queue](https://docs.dreamlake.ai/lakeshore/queues/task-queue.md): A Lakeshore queue with no provider attached is a plain task queue — submit, claim, complete, stream. The lifecycle, the durable id, and idempotent submits. - [Elastic queues](https://docs.dreamlake.ai/lakeshore/queues/elastic.md): Attach a provider to a queue and it starts supplying its own workers — the four scaling policies, the daemon template, the controller tick, and the event feed. ## Providers - [Overview](https://docs.dreamlake.ai/lakeshore/providers.md): The provider types Lakeshore can launch compute through — EC2, GCE and Kube today, with SSH and SLURM registerable but not yet launchable. - [EC2](https://docs.dreamlake.ai/lakeshore/providers/ec2.md): Provider launcher for AWS EC2 — the control plane calls RunInstances on your behalf and tags every instance it creates. - [GCE](https://docs.dreamlake.ai/lakeshore/providers/gce.md): Provider launcher for Google Compute Engine — the control plane calls instances.insert on your behalf and labels every VM it creates. - [Kube](https://docs.dreamlake.ai/lakeshore/providers/kube.md): Provider launcher for Kubernetes — the control plane creates one Pod per launch and labels it for later listing. - [SSH](https://docs.dreamlake.ai/lakeshore/providers/ssh.md): Provider launcher for hosts that already exist — Lakeshore connects over SSH and runs code per call. - [SLURM](https://docs.dreamlake.ai/lakeshore/providers/slurm.md): Provider launcher for Slurm clusters — registered and queryable today, with the sbatch submit path still a stub. - [Register a provider](https://docs.dreamlake.ai/lakeshore/providers/registration.md): Register provider configuration with the CLI or Python client. - [Resource setup](https://docs.dreamlake.ai/lakeshore/providers/resource-setup.md): Terraform examples for a new AWS SSH host or EKS cluster, alongside adoption of existing hosts. ## Developer Guides - [Declarations vs. execution: the four collections](https://docs.dreamlake.ai/dev/declaration-collections.md): Where the line falls between DreamLake and the lakeshore controlplane, and the provider / storage / UDF / agents collections that sit on the DreamLake side of it. - [Execution views: runs, queues and topology](https://docs.dreamlake.ai/dev/execution-views.md): The three read-only dashboard surfaces that show what the controlplane is doing — and why none of them adds a model to dreamlake-server. - [Tasks and linked Notes](https://docs.dreamlake.ai/dev/plans/tasks.md): Project task folders, progress events, waterfall and reusable agent skill. ## Dev Notes - [Shared Vault scopes](https://docs.dreamlake.ai/dev/notes/vault-shared-scopes.md): Added explicit organization and team saving to the Vault dashboard and entry API. Shared tenants use immutable organization/team IDs, with membership checked on each request. Team membership and organization membership are both required for team secrets, including visible teams. Personal storage and access-key behavior remain unchanged. - [Vault environment-file guide](https://docs.dreamlake.ai/dev/notes/vault-environment-files.md): CLI examples for development and production environment-file storage. - [Vault writer fleet audit](https://docs.dreamlake.ai/dev/notes/vault-writer-fleet.md): Bounded deployed-source inventory before any hosted KMS migration. ## Tracking - [Experiments](https://docs.dreamlake.ai/ml-dash/guides/experiments.md): The Experiment class owns one run's parameters, metrics, logs, files, and tracks — as a decorator, context manager, or explicit object. - [Parameters](https://docs.dreamlake.ai/ml-dash/guides/parameters.md): Record hyperparameters and configuration as static key-value pairs, including whole config classes and nested dicts. - [Metrics](https://docs.dreamlake.ai/ml-dash/guides/metrics.md): Log step-indexed scalars — loss, accuracy, learning rate — and read them back as summaries or series. - [Logs](https://docs.dreamlake.ai/ml-dash/guides/logging.md): Structured event logging with levels, timestamps, and metadata, for the events that are not numbers. ## Development - [Docs to skills](https://docs.dreamlake.ai/dev/skills.md): Maintain procedures in docs and reproduce the Notes and CLI skills from committed source revisions. - [Notes audio playback](https://docs.dreamlake.ai/dev/notes/audio-playback.md): Server credentials, streaming transport, and editing behavior for Notes read aloud. - [Notes list ordering](https://docs.dreamlake.ai/dev/notes/list-ordering.md): Shared paragraph, list and checklist addresses in Notes HTML snapshots. - [Notes incremental read failure](https://docs.dreamlake.ai/dev/notes/incremental-read-failure.md): Separate read-only line deltas from merge-safe character alignment. - [Notes highlight metadata](https://docs.dreamlake.ai/dev/notes/highlight-metadata.md): Plain-text author and comment annotations on inline highlights. - [Comment IDs in HTML reads](https://docs.dreamlake.ai/dev/notes/comment-html-ids.md): Comments were rendered as ordinary text in HTML snapshots, so an agent could target their paragraph but not the individual comment. Closed comment directives now render as atomic elements with sN.cK addresses sharing the section's reading-order counter. Saved references expose their persistent data-comment-id, and keyed drafts expose data-comment-key. Duplicate references retain one resource identity and have distinct target addresses. - [Addressed Notes reads](https://docs.dreamlake.ai/dev/notes/addressed-reads.md): Snapshot identity, semantic HTML addresses, source ranges, differential reads, and linger compatibility. - [Shareable view layouts](https://docs.dreamlake.ai/dev/notes/url-layout.md): URL codec, low-cost browser lifecycle and validation evidence. - [Agent text selection](https://docs.dreamlake.ai/dev/notes/notes-select-text.md): Hash-bound CLI selections using canonical source text. ## Data - [Files](https://docs.dreamlake.ai/ml-dash/guides/files.md): Upload and manage artifacts — checkpoints, configs, figures, blobs — with checksums, prefixes, and searchable metadata. - [Images](https://docs.dreamlake.ai/ml-dash/guides/images.md): Save frames and image arrays, and align them with track entries for playback. - [Tracks](https://docs.dreamlake.ai/ml-dash/guides/tracks.md): Timestamp-indexed multi-modal streams for robotics and RL — poses, sensors, per-step state — with a flexible per-topic schema. - [Buffering](https://docs.dreamlake.ai/ml-dash/guides/buffering.md): How writes are batched and flushed in the background, and how to tune batch size and flush interval. ## Examples - [Examples](https://docs.dreamlake.ai/ml-dash/examples.md): Complete, runnable training scripts tracked with ml-dash — a minimal loop, PyTorch MNIST, a hyperparameter sweep, comparing runs, and debugging with logs. - [Simple Training](https://docs.dreamlake.ai/ml-dash/examples/simple-training.md): A minimal training loop with parameters, per-epoch metrics, and a saved checkpoint. - [PyTorch MNIST](https://docs.dreamlake.ai/ml-dash/examples/pytorch-mnist.md): A complete PyTorch MNIST run tracked end to end, from config to final model artifact. - [Hyperparameter Search](https://docs.dreamlake.ai/ml-dash/examples/hyperparameter-search.md): Sweep hyperparameters across many runs under one project and compare the results. - [Comparing Experiments](https://docs.dreamlake.ai/ml-dash/examples/experiment-comparison.md): Read metrics back from several runs and compare them programmatically. - [Logging & Debugging](https://docs.dreamlake.ai/ml-dash/examples/logging-debugging.md): Use structured logs and levels to debug a run that went wrong.