Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion src/kitchenbench/specs.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class TaskSpec:
bimanual: bool
max_steps: int
instances: tuple[TaskInstance, ...]
version: str = "2"
version: str = "1"
description: str = ""


Expand Down Expand Up @@ -1341,6 +1341,7 @@ def _sort_fixtures(
bimanual=False,
max_steps=60,
instances=_PLACE_CUTLERY,
version="2",
description="Pick a single piece of cutlery and place it on a target surface.",
),
TaskSpec(
Expand All @@ -1350,6 +1351,7 @@ def _sort_fixtures(
bimanual=False,
max_steps=80,
instances=_STACK,
version="2",
description="Stack multiple like items into a single neat stack.",
),
TaskSpec(
Expand All @@ -1359,6 +1361,7 @@ def _sort_fixtures(
bimanual=False,
max_steps=80,
instances=_PLACE_IN_RACK,
version="2",
description="Drop a dish into the correct slot of a dish rack.",
),
TaskSpec(
Expand All @@ -1368,6 +1371,7 @@ def _sort_fixtures(
bimanual=True,
max_steps=100,
instances=_POUR_PASTA,
version="2",
description="Pour dry pasta into a receiving vessel; one arm steadies, the other pours.",
),
TaskSpec(
Expand All @@ -1377,6 +1381,7 @@ def _sort_fixtures(
bimanual=True,
max_steps=120,
instances=_OPEN_CONTAINER,
version="2",
description="Remove or unscrew a lid — one arm braces while the other twists or pries.",
),
TaskSpec(
Expand All @@ -1386,6 +1391,7 @@ def _sort_fixtures(
bimanual=True,
max_steps=120,
instances=_FOLD_CLOTH,
version="2",
description="Deformable manipulation: grasp opposite corners and manage slack.",
),
TaskSpec(
Expand All @@ -1395,6 +1401,7 @@ def _sort_fixtures(
bimanual=True,
max_steps=120,
instances=_SEAL_CONTAINER,
version="2",
description="Align and press-or-twist a matching lid onto a base while one arm holds it.",
),
TaskSpec(
Expand All @@ -1404,6 +1411,7 @@ def _sort_fixtures(
bimanual=True,
max_steps=80,
instances=_HANDOFF,
version="2",
description="A pure handover that a single arm cannot do — the must-use-both-arms anchor.",
),
TaskSpec(
Expand All @@ -1413,6 +1421,7 @@ def _sort_fixtures(
bimanual=False,
max_steps=200,
instances=_SORT_CUTLERY,
version="2",
description="Sort a mixed pile into spoon/fork/knife compartments — multi-instance.",
),
TaskSpec(
Expand Down
6 changes: 4 additions & 2 deletions tests/test_sim_blueprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ def _all_scene_seed_pairs() -> list[tuple[str, object, int]]:
for spec in SPEC_BY_KEY.values():
for index, scene in enumerate(build_scenes(spec)):
for epoch in range(3):
pairs.append((f"{spec.key}[{index}]e{epoch}", scene, derive_seed(0, index, epoch)))
pairs.append(
(f"{spec.key}[{index}]e{epoch}", scene, derive_seed(0, scene.init_seed, epoch))
)
return pairs


Expand Down Expand Up @@ -208,7 +210,7 @@ def test_pinned_handoff_receiving_arms() -> None:

def test_pinned_size_order_mixed_sizes_both_orders() -> None:
scene = _scene("stack", 3) # mixed-sizes: size_order sampled
# Epoch 0 samples "largest_first", epoch 1 samples "shuffled" (pinned).
# These fixed seeds sample "largest_first" and "shuffled" (pinned).
seed_first = derive_seed(0, 3, 0)
values_first = realize_scene(scene, seed_first).values # type: ignore[arg-type]
assert values_first["size_order"] == "largest_first"
Expand Down
Loading