Skip to page content
SAVRN
Search Plan a project

Open-weight model · Robotics

chess_phase_smolvla_baseline

by Machanize Machanize/chess_phase_smolvla_baseline

chess_phase_smolvla_baseline is an open-weight model for robotics from Machanize, released under Apache License 2.0. It has 450M parameters. At 16-bit it needs about 1.1 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

SmolVLA trained to move a chess piece with an SO-101 arm in one fixed simulated scene (MuJoCo). It is the simple baseline of the chess robot's "hand": first get reliable closed-loop success in the easiest setting, then add variety back one change at a time.

Parameters450M
Context—
Weights906.7 MB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve chess_phase_smolvla_baseline (450M parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 0.9 GB 1.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 0.5 GB 0.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.2 GB 0.3 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

chess_phase_smolvla_baseline on every accelerator the SAVRN Index prices, at every precision

Model Card

By Machanize, published under apache-2.0, revision 732414b34060.

SmolVLA trained to move a chess piece with an SO-101 arm in one fixed simulated scene (MuJoCo). It is the simple baseline of the chess robot's "hand": first get reliable closed-loop success in the easiest setting, then add variety back one change at a time. Trained fresh from lerobot/smolvlabase, not from the earlier Machanize/chessphasesmolvla. Status: not yet reliable. In a closed-loop test it completed 36.7% of 60 moves (details below). It has not been run on a real arm. - observation.images.overhead: a webcam 65 cm straight above the board, 44 degrees top to bottom, the arm at the top edge of the image. Fed to the model as camera1. - observation.images.wrist: the official SO-101 wrist…

Read Machanize's full model card

SmolVLA trained to move a chess piece with an SO-101 arm in one fixed simulated scene (MuJoCo). It is the simple baseline of the chess robot's "hand": first get reliable closed-loop success in the easiest setting, then add variety back one change at a time. Trained fresh from lerobot/smolvla_base, not from the earlier Machanize/chess_phase_smolvla.

Status: not yet reliable. In a closed-loop test it completed 36.7% of 60 moves (details below). It has not been run on a real arm.

What it does

  • Input: two 640x480 camera images and the arm's joint positions, at 30 Hz.
  • observation.images.overhead: a webcam 65 cm straight above the board, 44 degrees top to bottom, the arm at the top edge of the image. Fed to the model as camera1.
  • observation.images.wrist: the official SO-101 wrist camera. Fed to the model as camera2.
  • The piece to move has a red square with an opaque outline drawn over its square; the target square has a blue one. Both are drawn on the images before they reach the policy.
  • observation.state: 5 arm joints in degrees and the gripper 0-100 (LeRobot's SO-101 follower units with use_degrees=True).
  • The instruction is always "move the piece on the red square to the blue square".
  • Output: the next joint targets in the same units, in chunks of 50 steps.
  • The training video was stored at high quality (H.264, CRF 18, full 4:4:4 colour), so the markers keep their colour. For the closest match, pass live frames through the same encode and decode (training_look(image, 18, "yuv444p") in the project's sim/camera_effects.py).

The scene (all fixed)

  • Board with 25 mm squares, square to the robot and flush against its 6 cm deck; the robot plays black. One Staunton set, black and white pieces, centred in their squares. White arm.
  • Tray on the right, one table, the same two lamps, no clutter, a clean camera image.
  • Ten moves from the start position: e7e5, d7d5, g8f6, b8c6, c7c5 (the robot's side) and e2e4, d2d4, g1f3, b1c3, c2c4 (the far side). The start is the same every time and only the red and blue squares change, so doing different moves correctly shows it reads the markers.

Test in simulation

60 closed-loop episodes, each a random one of the ten moves from seeds not used in training. An episode counts as a success if the piece ends within 6 mm of the target square, upright, and no other piece moved more than 2 mm. 20 s limit.

Success: 36.7%

  • Gripper within half a square of the marked piece: 95.0% of episodes (median closest approach 3.3 mm).
  • Marked piece lifted: 68.3%.
move success episodes
b1-c3 16.7% 6
b8-c6 14.3% 7
c2-c4 0.0% 5
c7-c5 66.7% 6
d2-d4 33.3% 6
d7-d5 60.0% 5
e2-e4 60.0% 10
e7-e5 33.3% 6
g1-f3 33.3% 3
g8-f6 33.3% 6

What goes wrong

  • It reads the markers. The gripper reaches within half a square of the marked piece in 95% of episodes, for every one of the ten moves.
  • It fails at the grasp. A grasp inspection over 20 episodes compared the pinch point, at the moment the policy starts closing the jaws, with the grasp the scripted expert would make on the same piece. Grasps that held were 0.8-0.9 mm off; failures were 4-6 mm off. With the jaws off-centre it pushes the piece over (7 of 20) or closes beside it (6 of 20).
  • Executing 10 steps of each 50-step chunk before predicting again, instead of all 50, did not help (4 of 15).
  • ACT trained on the same data reached 14%.
  • A first fine-tune on correction demonstrations of its own mistakes reached 20%. In those corrections the teacher rose above the piece and paused before grasping again, and the model learned to hover over pawns. That model was not kept.
  • Next: corrections that line up from where the arm is and go straight down, with no rise and no pause.

Training data

Machanize/playful, folder chess-sim/datasets/baseline_v1 (private): 300 successful episodes (89008 frames) of a scripted inverse-kinematics expert at 30 fps, about 30 per move. The expert's start pose and speed vary slightly between episodes.

Training

From lerobot/smolvla_base, 10000 steps at batch 64 on one RTX 4090 in 1.9 h, LeRobot 0.4.4, default SmolVLA settings (vision encoder frozen, action expert trained). Overhead and wrist cameras are renamed to camera1 and camera2.

Use

from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("Machanize/chess_phase_smolvla_baseline")

Load the pre- and post-processors saved with the model using make_pre_post_processors. They apply the training normalisation and rename the camera keys.

Limitations

  • Simulation only, one scene, ten moves. Other moves, board positions, camera views, lighting or piece sets are untested and expected to fail until the variety is added back.
  • The overlay is required: without the red and blue squares it does not know what to move.

Identity and Version

Repository
Machanize/chess_phase_smolvla_baseline
Publisher
Machanize
Task
Robotics
Modality
Control
Library
lerobot
Parameters
450M parameters
Languages
Not stated by the source
Revision
732414b340609339d17fd0d1a66110c55634259d
First published
2026-09-24
Last updated
2026-09-24

Files and Weights

13 files, 916.6 MB in total. The weights are 3 files totalling 906.7 MB in safetensors.

Weights3 files · 906.7 MB
Configuration5 files · 49.6 KB
Documentation3 files · 14.3 KB
Other1 file · 9.8 MB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights906.7 MB 6146a60e1e95
policy_postprocessor_step_0_unnormalizer_processor.safetensorsWeights7.6 KB 368c644b62f9
policy_preprocessor_step_5_normalizer_processor.safetensorsWeights7.6 KB 368c644b62f9
config.jsonConfiguration2.5 KB —
policy_postprocessor.jsonConfiguration660 B —
policy_preprocessor.jsonConfiguration2.0 KB —
sim_test/eval_results.jsonConfiguration37.5 KB —
train_config.jsonConfiguration6.8 KB —
README.mdDocumentation5.3 KB —
sim_test/eval_report.mdDocumentation6.2 KB —
sim_test/grasp_inspection.mdDocumentation2.8 KB —
sim_test/eval_video.mp4Other9.8 MB fdf5afa4f437
.gitattributesRepository1.6 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
906.7 MB
Download from Machanize

Released by Machanize through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published906.7 MB
16-bit0.9 GB
8-bit0.5 GB
4-bit0.2 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About chess_phase_smolvla_baseline

How much GPU memory does chess_phase_smolvla_baseline need?

About 1.1 GB at 16-bit and 0.3 GB at 4-bit: the weights (450M parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run chess_phase_smolvla_baseline on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use chess_phase_smolvla_baseline commercially?

Yes. chess_phase_smolvla_baseline is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

Similar Models

Model · Robotics

smolvla_base

LeRobot

SmolVLA is a compact, efficient Vision-Language-Action (VLA) model designed for affordable robotics, trainable on a single GPU and deployable on consumer hardware, while matching the performance of much larger VLAs through community-driven data. Original paper: (SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics)[https://arxiv.org/abs/2506.01844] For full installation details (including optional video dependencies such as ffmpeg for torchcodec), see the official documentation: https://huggingface.co/docs/lerobot/installation If you’re training / fine-tuning, you typically call forward(...) to get a loss and then: - -policy.chunksize=... - -policy.nactionsteps=...…

Open weights apache-2.0 450M parameters lerobot

Model · Robotics

smolvla_libero

LeRobot

SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.

Open weights apache-2.0 450M parameters lerobot

Model · Robotics

smolvla_robotwin

LeRobot

SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. See the full documentation at LeRobot Docs. For a complete walkthrough, see the training guide. Below is the short version on how to train and run inference/eval: Writes checkpoints to outputs/train/ /checkpoints/. Prefix the dataset repo with eval\ and supply --policy.path pointing to a local or hub checkpoint.

Open weights apache-2.0 450M parameters lerobot

SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. Learn how to train and run it in the LeRobot smolvla guide, or browse the full documentation. The policy consumes these observation features and produces these action features. Inputs Outputs New to LeRobot? These guides cover the full workflow: - Install LeRobot — set up the lerobot package. - Hardware setup — assemble, wire, and calibrate your robot and cameras. - Record data & train a policy — the end-to-end imitation-learning walkthrough. - CLI…

Open weights apache-2.0 450M parameters lerobot

Model · Robotics

smolvla-policy

Hayato Nakamura

SmolVLA is a compact, efficient vision-language-action model that achieves competitive performance at reduced computational costs and can be deployed on consumer-grade hardware. This policy has been trained and pushed to the Hub using LeRobot. Learn how to train and run it in the LeRobot smolvla guide, or browse the full documentation. The policy consumes these observation features and produces these action features. Inputs Outputs New to LeRobot? These guides cover the full workflow: - Install LeRobot — set up the lerobot package. - Hardware setup — assemble, wire, and calibrate your robot and cameras. - Record data & train a policy — the end-to-end imitation-learning walkthrough. - CLI…

Open weights apache-2.0 450M parameters lerobot

Model · Robotics

thali_smolvla

Prashant Thakur

lerobot/smolvlabase fine-tuned on Prashant-77/thaliall (1050 scripted-expert episodes, 7 skills, language-conditioned, 3 cameras). Camera keys are renamed at train and inference time: overhead → camera1, wrista → camera2, wristb → camera3 (--renamemap; runtime/executors.py applies the same map). Checkpoints in this repo. Root = 20 000 total steps. step14000/ = the best per-skill checkpoint (14 000 steps at batch 16 on a T4; the last 6 000 steps ran at batch 4 with a fresh optimizer on a smaller GPU and lost ground). Policy-only success per skill from task-consistent start states, 20 held-out seeds (eval/skilleval.py --kind smolvla): The scripted expert reaches 9/10 on the full task; the…

Open weights apache-2.0 450M parameters lerobot