Decision Transformer, Hopper-v5

Each video is one deterministic episode of the same trained Decision Transformer (seed 0, trained on Minari mujoco/hopper/medium-v0), differing only in the return-to-go it is told to achieve. The slider picks the target. These videos are pre-rendered; the live panel further down runs the actual model in your browser.

Target return: ( of the best episode in the dataset)

targetachieved returnnormalized scorestepsended

Live model probe (runs in your browser)

This is not a simulation: there is no physics in the page. It feeds the first 100 observations of one recorded episode (target = 1.0 x best dataset return, the same policy and env seed as the videos) to hopper_dt.onnx through onnxruntime-web, with the return-to-go you choose, and shows the actions the model would output at each step. Dashed grey = target 3909 (the recorded actions); solid = your target. If the lines overlap, the model ignores the target there.

Target return:   mean |action difference| vs target 3909: (loading model...)

One episode per target, fixed env seed 12345, not selected. A single episode is an anecdote; the repository README has the 3-seed x 10-episode numbers. Normalized score = 100 (return - random) / (expert - random) with the D4RL Hopper reference returns (-20.27, 3234.3); the Minari medium data already scores around 87 by this scale, so values above 100 are possible. The model is also exported to hopper_dt.onnx (fixed context of 20 steps; export_onnx.py checks PyTorch against onnxruntime).