# Robot history: offline line motion studies

These 180 frames are original illustrative motion studies, rendered offline as
occluded line art. They are **not captured trajectories, validated robot control,
or factory-accurate reproductions**. The five characters are independently
framed so mechanical features remain legible, not presented at a common scale.
No Boston Dynamics photo or video footage is included in the exported artwork.

## Universal Robots UR5e

Rendered from the same actual UR5e assembly used by the site's 3D scenes:
`dist/real-arm.js`, `dist/assets/ur5e-compact.glb`, and its project parallel
 gripper. Source robot geometry and articulated joint frames derive from the
BSD-3-Clause Universal Robots UR5e description in MuJoCo Menagerie:

https://github.com/google-deepmind/mujoco_menagerie/tree/8161bba264d7fa7c99ca301e91e7fb44737676ad/universal_robots_ur5e

Copyright 2018 ROS Industrial Consortium. The complete required notice is
retained in [LICENSE-ur5e.txt](LICENSE-ur5e.txt). The smooth cosmetic housings,
trim and parallel gripper are original project additions; this is not a claim
that Universal Robots manufactures that end-effector. See also the existing
[compact derivative record](../../UR5E-COMPACT-SOURCE.md) and
[gripper extraction record](../../gripper-SOURCE.md).

Original motion uses the six real local joint axes with visual inverse
kinematics: approach a supported test piece, close the fingers, lift, shift,
lower and release. It is a posed demonstration, not a hardware performance
measurement or a historical motion capture. No product release year is assigned
by this artwork.

## Original wheeled rover

An original unbranded four-wheel platform, developed from the existing
`robot-study-scene.js` concept. It is not a Boston Dynamics product or a licensed
model of another manufacturer's rover. Mechanical details include separate
wheel hubs, tire treads, front steering pivots, body seams and fasteners, a
rotating range head, and a small strapped rear payload.

The authored motion rotates all four wheels, steers the front pair, changes
chassis heading, and independently turns the range head. It illustrates
articulated sensing and mobility without claiming validated wheel-slip or
vehicle dynamics. No historical date or lineage is asserted.

## Spot

Geometry from the BSD-3-Clause Spot description in Google DeepMind MuJoCo
Menagerie, commit `8161bba264d7fa7c99ca301e91e7fb44737676ad`:

https://github.com/google-deepmind/mujoco_menagerie/tree/8161bba264d7fa7c99ca301e91e7fb44737676ad/boston_dynamics_spot

The upstream README describes a simplified MJCF model derived from
[spot_ros2](https://github.com/bdaiinstitute/spot_ros2). Copyright (c) 2021,
Clearpath Robotics Inc. The full required notice is retained in
[LICENSE-spot.txt](LICENSE-spot.txt).

Original posed motion: three supporting feet remain fixed in world coordinates
while the front-right foot raises over a low obstacle and steps forward. MuJoCo
forward kinematics and numerical inverse kinematics position the real mesh
parts. This demonstrates articulation only, not dynamically validated balance.

## Handle, 2019 logistics configuration

Original Three.js geometry authored for this project, informed by the shape and
mechanism visible in official material. No proprietary mesh was copied.
Distinguishing details: two wheels, articulated leg carriers, single arm,
vacuum contact plate, and rear battery counterweight. The sequence reaches,
contacts a carton, and lifts while the tail moves opposite the load.

- [Handle Robot Reimagined for Logistics, official video, 2019-03-28](https://www.youtube.com/watch?v=5iV_hB08Uns)
- [From Idea to Application with Stretch](https://bostondynamics.com/blog/idea-to-application-with-stretch/)
- [Official robot history](https://bostondynamics.com/about/history/)

The original Handle platform appeared in 2017. This drawing deliberately uses
the later 2019 logistics form. Handle led to Stretch; it is not a predecessor to
Spot or a step in a universal wheel-to-leg-to-humanoid ladder.

## Electric Atlas, 2024 visual study

Original Three.js geometry authored for this project from the documented 2024
electric platform's visual features: circular sensor head, shaped torso,
electric joint covers, mechanical hands, and articulated legs. This is not a
Unitree G1 model and no G1 geometry is used. It is an illustrative reconstruction,
not Boston Dynamics CAD.

- [An Electric New Era for Atlas](https://bostondynamics.com/blog/electric-new-era-for-atlas/)

Original motion: bend and reach to a supported carton, lift, then turn the torso
and take a step while carrying it. The far supporting foot is held in world
space through the turn. The clip ends while carrying; it does not depict a
completed placement or claim to reproduce an official manipulation trial.

## Rendering and distribution

- Three.js is used offline only; the page loads native compressed WebP sprites.
- 36 frames per character, 1000 × 760, 18 frames/second, 2-second study.
- Six frames per 3000 × 1520 WebP sprite, arranged as three columns × two rows.
- Background `#f5f3ee`; contour ink based on `#283d3b`.
- Ten-tone (UR5e, rover) or sixteen-tone (Spot, Handle, Atlas) antialiased
  palette, followed by native lossless WebP encoding. The background is exact;
  no high-volume runtime model or texture download is needed.
- Mesh edges and visible part boundaries are composited after opaque rendering,
  so hidden back-side contours are removed.
- `focusBox` is the padded union of visible bounds across all 36 frames.
- Poster images are static alternatives for reduced motion and loading states.
- Sprite and poster paths in `manifest.json` are relative to that manifest.

Rebuild with Python (`mujoco`, `scipy`, `numpy`, Pillow, OpenCV), Node and
Playwright, a local existing Menagerie checkout, and the site's preview server:

```sh
HISTORY_NAMES=arm,rover,spot,handle,atlas node scripts/robot-history-render.cjs /path/to/mujoco_menagerie
python -P scripts/robot-history-pack.py
```

The render script expects the local preview at `http://127.0.0.1:50218/` and
writes working images to `/tmp/embodiatlas-robot-history`. These scripts do not
send site visitors to external CDNs or download robot models at runtime.

To add or regenerate only selected characters while preserving other published
sprites and manifest entries:

```sh
HISTORY_NAMES=arm,rover node scripts/robot-history-render.cjs /path/to/mujoco_menagerie
python -P scripts/robot-history-pack.py --characters arm,rover --merge
```
