RoboWits: Unexpected Challenges for
Robotic Creative Problem Solving
May 28, 2026
The ability to reason, adapt, and creatively solve problems under unexpected challenges is essential for robots operating in real-world environments. However, current robotic benchmarks primarily emphasize skill-level execution and provide limited insight into such cognitive reasoning capabilities. We introduce RoboWits, a bi-manual robotic benchmark designed to systematically evaluate cognitive reasoning, creative tool use, and robustness to unexpected conditions. To enable scalable construction of high-quality reasoning-centric unexpected scenarios, we propose an automated task generation pipeline formulated as a multi-agent cooperative framework, comprising agents for seed task generation and verification, metric generation, scene generation, and task mutation. Using the pipeline, we curated 30 diverse seed tasks and 208 tasks with mutations and graded difficulty across geometry, material, and assembly-based reasoning. We benchmark popular robot policies, pre-trained VLAs, and oracle-state planners. Our results reveal a significant performance gap: while pre-trained VLAs exhibit preliminary success on seed tasks after single-task fine-tuning, they struggle to perform on mutated tasks, implying their brittleness in manipulation tasks requiring reasoning, strategy adaptation, and robustness to deceptive or constrained environments. See our project page1 for videos.
The ability to creatively solve problems and adapt to unexpected challenges is fundamental to intelligent behavior. In everyday environments, humans and animals routinely encounter situations where initial strategies fail, tools behave differently than expected, or misleading alternatives are present. Success in such settings relies not only on executing motor skills, but also on reasoning about object geometry, material properties, and physical constraints, and flexibly revising plans when assumptions are violated. For robots to operate reliably in the real world, they must demonstrate similar cognitive problem-solving capabilities.
Despite significant progress in robotic manipulation, current robotic benchmarks largely focus on skill-level execution under well-specified conditions [1]–[4], such as grasping, pushing, or predefined tool use [5]. As shown in Figure 1, VLAs mastering skill-level execution only struggle with small changes in the scene, while VLAs thinking out of the box could reason about the constraints implied in the scene and creatively adapt strategies. While recent VLAs showcase impressive tool-use and failure-recovery demonstrations, such as cardboard box assembly [6] and small-object collection with a paper plate [7], there is no unified benchmark that systematically evaluates a robot’s ability to reason, adapt, and handle unexpected challenges. As a result, the reasoning capabilities of current VLA models are not well understood, and the absence of systematic evaluation makes it difficult to diagnose their failure modes or identify the specific reasoning components that must be improved to advance toward more capable, reasoning-driven VLAs.
To address this gap, we introduce RoboWits, a new bi-manual robotic benchmark that explicitly targets evaluating cognitive reasoning, creative tool use, and robustness to unexpected challenges. The benchmark consists of manipulation tasks that require geometric, material, and assembly-based reasoning, where naïve solutions are often invalidated or inefficient. Tasks are organized across multiple difficulty levels, enabling fine-grained evaluation of how robotic models scale with increasing reasoning complexity.
Designing such tasks manually is time-consuming and extremely challenging for even human designers. To produce diverse, high-quality tasks at scale, we propose an automated task generation pipeline formulated as a multi-agent cooperative framework. The pipeline decomposes task construction into specialized agents with different roles: a seed task generator that proposes cognitively challenging task specifications, a task mutation generator that expands each seed into diverse task mutations where original solution are blocked by small scene changes, a task metric generator that produces executable evaluation criteria, a task verifier that ensures feasibility, simulatability, and necessity of reasoning, and a scene generator that constructs realistic and physically consistent environments. Through structured cooperation among these agents, the pipeline automatically produces a diverse and scalable set of cognitively challenging tasks that would be difficult to design by hand. We construct 30 seed tasks spanning geometry, material, and assembly-based reasoning, and expand them into 208 tasks with graded difficulty and full evaluation code. We also collect 50 human-teleoperated demonstrations for 10 of the seed tasks to facilitate benchmarking.
While cognitive reasoning is arguably learnable by imitation, existing robotic policy models remain unable to reliably perform unseen tasks in a zero-shot manner, even after large-scale pre-training. We evaluate a representative suite of models on RoboWits, including imitation learning baselines, pre-trained Vision–Language–Action (VLA) models, and Vision–Language Model (VLM)-based planners with oracle access to object states, under both single-task fine-tuning and multi-task learning regimes. Our empirical results show that pre-trained VLAs leverage their prior knowledge to outperform from-scratch models in low-data settings (50 demonstrations), yet still exhibit substantial difficulty with tasks requiring complex material interactions and assembly-level reasoning. Even with oracle state access, modular planners driven by VLMs achieve reasonable performance on seed tasks but fail to generalize effectively to mutated task variants. Overall, RoboWits offers a rigorous framework for quantifying the gap between low-level manipulation proficiency and high-level cognitive adaptation.
In summary, our contributions are as follows:
We introduce RoboWits, a new robotic benchmark that evaluates cognitive reasoning, creative tool use, and robustness to unexpected challenges in bi-manual manipulation.
We propose an automated, multi-agent task generation pipeline that enables scalable construction of diverse, reasoning-centric manipulation tasks.
We benchmark existing robotic policy methods, revealing achievements and limitations in reasoning and adaptation beyond low-level skill execution.
| Benchmark | Task Type | Curation | Evaluation | # Tasks | Horizon | Task Features | ||
|---|---|---|---|---|---|---|---|---|
| 7-9 | Diverse | Tool | Strategy | |||||
| Materials | Use | Adaptation | ||||||
| RLBench [1] | Unimanual | Human | Binary Success | 100 | Short–Long | |||
| LIBERO [2] | Unimanual | Human | Binary Success | 130 | Short–Long | |||
| RoboTwin 2.0 [4] | Bi-manual | Human | Binary Success | 50 | Short–Med | |||
| RoboEval [8] | Bi-manual | Human | Succ. + Score | 10 | Short–Med | |||
| VLABench [9] | Unimanual | Human | Binary Success | 100 | Short–Long | |||
| MacGyver [10] | Text Planning | Generated | Human Judge | 1.6k | - | |||
| RoboWits (Ours) | Bi-manual | Generated | Succ. + Score | 208 | Short–Long | |||
Robot policy model has seen rapid progress recently due to increased data available and better architectures [11]–[23]. With modern physics simulators such as Genesis [24], SAPIEN [25], MuJoCo [26], IsaacGym [27], and other specialized simulators [28]–[30], many robotic benchmarks have been developed and have played an important role in evaluating and improving robot policy models [31]–[36]. RLBench [1] includes 100 diverse human-designed manipulation tasks, LIBERO [2] features task suites across four dimensions, RoboTwin 2.0 [4] provides 50 bi-manual manipulation tasks, RoboEval [8] incorporates structured evaluation, and VLABench [9] provides manipulation tasks requiring language-level reasoning. Other benchmarks such as HomeRobot [37], RoboCasa [38], and RoboSuite [39] further extend toward mobile manipulation. Despite their success, most existing benchmarks mainly emphasize skill execution under well-specified settings. Our benchmark and automated pipeline take a step further by systematically generating and evaluating bi-manual tasks that target explicit reasoning, diverse materials, creative tool use, and robust adaptation under unexpected constraints.
Creative problem solving has been widely studied in domains such as NLP and cognitive science, where benchmarks evaluate multi-step planning, strategy revision, and compositional generalization [10], [40]–[43]. However, these benchmarks are often limited to specific settings like text-only and require extensive human evaluation. In robotics, physics simulators provide a natural testbed to study creative problem solving through grounded interaction and automatic success metrics. Some robotic benchmarks begin to touch on related aspects, often through multi-task instruction following or language-conditioned manipulation [3], [9], [35], [44], but they do not systematically isolate and evaluate creative tool use and adaptation under unexpected constraints. In contrast, RoboWits targets these capabilities with reasoning-centric bi-manual tasks and metric-based evaluation at scale.
Automatically generating tasks is essential for scaling benchmarks while reducing the cost of manual design and human labor. Prior work explores task diversification through domain randomization [1], [4], which mainly varies superficial factors such as instructions, textures, and object placements. Several lines of research explore scene generation via procedural generation with hand-crafted rules [2], [45], image-driven pipelines that leverage 2D priors to construct 3D layouts [46], [47], and, more recently, LLM-based methods that either generate symbolic constraints for external solvers or directly predict object placements through prompting [48], [49]. Other works focus on metric generation, where task success or even rewards are defined through programmatic checks over simulator states and physical conditions [50]–[52]. Building on these directions, we propose a unified multi-agent pipeline that jointly performs task creation, diversification, verification, scene instantiation, and metric synthesis. This enables scalable generation of reasoning-centric bi-manual tasks with diverse solution spaces, varying cognitive difficulty, and ground-truth evaluation.
We first introduce our task settings in Sec. 3.1, then our automatic agentic task generation pipeline in Sec. 3.2, and finally present the benchmark in Sec. 3.3.
To evaluate robotic creative problem-solving and strategy adaptation capabilities under unexpected conditions, RoboWits tasks are designed to tightly couple cognitive reasoning with physical interactions. All tasks are set in a tabletop environment with a dual-arm robot equipped with parallel grippers. The workspace contains everyday objects with diverse shapes, sizes, and material properties. Each task \(T\) is defined by a natural language instruction \(\mathcal{I}\), an object list \(\mathcal{O}\), an initial 3D scene configuration \(\mathcal{C}\), an evaluation metric \(\mathcal{M}\), and a difficulty score \(s \in \{1,2,3,4,5\}\). \[T=(\mathcal{I, O, C, M}, s)\] The instruction \(\mathcal{I}\) specifies only the goal and intentionally avoids hinting at the solution. For example, an instruction may state “pinch the bank card" rather than “push the bank card to the table edge and pick it up". The reasoning part to discover an appropriate solution is left entirely to the robot. Each object in the object list \(\mathcal{O}\) contains a natural language description of the desired appearance and functional attributes, while \(\mathcal{C}\) instantiates all the objects with a specified 3D model, parameterized physical material, and group relationships. The evaluation metric \(\mathcal{M}\) includes both a binary success indicator and a continuous progress score function. The difficulty score \(s\) reflects both physical execution difficulty and reasoning complexity.
To generate diverse and cognitively challenging tasks at scale, we propose a multi-agent task generation pipeline as illustrated in Figure 2. The system consists of 5 distinct components: a Seed Task Generator, a Task Verifier, a Metric Generator, a Task Mutator, and a Scene Generator. Each component acts as an independent agent powered by a foundation model, collaborating to complete the task generation process. We describe these components in detail below and provide an illustrative example in Appendix 7.2.
We define three task taxonomies: geometry-based reasoning, material-based reasoning, and assembly reasoning. These categories require robots to reason about how geometric or material properties relate to object functionality, as well as how multiple objects can be composed into a functional tool or system to accomplish a goal. To balance structure and diversity, we represent all three categories in a unified task schema, which we provided an example of in Appendix 10.6. The schema standardizes task specification and evaluation-relevant fields, while still allowing substantial variation in task content, scene composition, and difficulty. Each seed task consists of: (i) a natural-language instruction, (ii) a structured object list, (iii) a potential solution (used only for verification and not exposed to the robot), and (iv) a short description explaining why the task requires reasoning.
None
Figure 3: An example object in the task schema..
As shown in Fig 3, each item in the object list is defined by its appearance attributes, functional attributes, and a set of candidate instances. This abstraction encourages the Seed Task Generator to focus on an object’s underlying role in the task, rather than overfitting to a specific instance. For example, an object may be designated by the abstract name container, with appearance attributes indicating a narrow open, and functional attributes specifying a rigid material and stable placement on the table. The candidate instances then help concretize the abstraction by mapping it to everyday objects. This representation supports generating diverse task instances that share the same reasoning pattern but differ in concrete object realizations.
The Task Verifier is a tool-augmented and simulator-aware agent. It determines task validity along three dimensions: simulatability, solution feasibility, and solution efficiency.
Simulatability. The verifier first checks whether the task can be instantiated and executed within the simulator. Tasks that require physical properties or interactions beyond the simulator’s capabilities are immediately rejected. To ensure that all referenced objects can be created in the simulator, the verifier can invoke an asset retrieval tool to search for suitable 3D assets from both a local asset library and online resources3, and a 3D asset generation tool to try to create the assets. If an object cannot be matched to an appropriate 3D asset and fails to be generated, the task cannot be instantiated and is therefore rejected.
Solution feasibility and efficiency. Given the potential solution, the verifier examines whether the required operations are realistically executable, rejecting solutions that rely on extreme precision control, highly dynamic motions, or operations beyond the capability of a bi-arm robot with parallel grippers. In addition, the verifier checks whether the task admits significantly easier alternative solutions. Tasks with such shortcut solutions are rejected to ensure that success requires non-trivial reasoning.
Difficulty score. For tasks that pass the above checks, the verifier assigns an operational difficulty score \(s_o\) based on execution-related factors, including the number of required steps, the complexity of the manipulation primitives (e.g., simple pick-and-place versus precise control), and whether bi-manual coordination is required.
Given a seed task, the Task Mutator agent collaborates with the Task Verifier agent to generate a set of diverse and valid task mutations that require a novel solution by adding minimal constraints. The mutator proposes candidate mutations by modifying the task specification (primarily the object list and object attributes), while preserving the original task goal and evaluation metric. The verifier then checks their validity and provides feedback when revisions are needed. Through this iterative process, we obtain a family of task instances with diverse challenges and graded difficulty. To systematically increase task diversity and difficulty, we design three mutation strategies.
Pivot strategy blocks the current solution by removing or modifying key objects in the object list, and introduces new objects that enable alternative valid solutions. This mutation promotes diversity in feasible solutions, rather than generating superficial variations.
Trap strategy increases both reasoning and execution difficulty by injecting "trap objects" into the scene. Trap objects are designed to appear useful but are functionally ineffective due to subtle constraints such as mismatched resizing, being fixed to the table, being placed out of reach, or having unexpected material properties. For example, a board that visually resembles a rigid lever can be assigned a soft material, making it unsuitable for applying torque. These traps substantially increase reasoning difficulty by introducing deceptive failure modes and test whether a policy can recognize failure and recover or adapt its strategy accordingly.
Add strategy increases scene complexity by adding useless objects as distractors. Although these objects don’t affect task solutions, they introduce clutter and perceptual noise, making tool selection and reasoning more challenging.
Mutation-Verification Workflow The overall mutation-verification workflow is summarized as Algorithm 9 in the Appendix 7.1. We maintain a valid task pool, initialized with the seed task. At each mutation step, we randomly sample a task from the pool and select a mutation strategy from {pivot, trap, add}. The mutator then generates a candidate task variant for the verifier to evaluate. If the candidate is deemed invalid, the verifier provides structured feedback, and the mutator revises the task accordingly. This back-and-forth refinement is allowed for up to 3 rounds. Verified task variants are added to the pool, and others are discarded. To avoid repetitive variants, we prevent applying the same mutation strategy to a task more than twice.
In practice, we prioritize the pivot strategy in the early stages to maximally explore the solution space while keeping tasks minimal (i.e., avoiding redundant or distracting objects). This step is critical for discovering fundamentally different solution strategies rather than superficial variations. After establishing diverse solution families, the trap strategy introduces deceptive but inefficient alternatives that increase cognitive difficulty. And the add strategy is applied to increase scene clutter, primarily raising execution and control difficulty without changing the core reasoning structure. We show example mutation-verification trees in Figure 10.
Given a task specification, the Scene Generator agent is invoked to produce the initial 3D scene configuration, following prior work [53]. This includes automatically retrieving new 3D asset models if necessary, assigning physical properties (e.g., material types, density, and friction coefficients), and determining the initial positions and orientations of all objects. The agent is equipped with several tools to interact with the physics simulator, iteratively place objects, assign physical parameters, and render four views of the current scene and the scene after some physics steps to verify that the generated scene code is plausible and that the scene is stable for robots to execute tasks. The Scene Generator agent enables scalable, diverse scene instantiation while maintaining both physical and visual realism.
The final stage of the pipeline generates task evaluation metrics, including a binary success indicator and a detailed progress score function. Following prior work [51], [52], we predefine a set of simulator APIs for querying object states and physical conditions, which the Metric Generator agent uses to produce executable evaluation code. Crucially, all mutated task variations share the same goal and thus the same evaluation metric of their seed task. This means metric generation occurs only once per seed task. While manual verification remains a standard necessity across benchmarks to mitigate edge cases, our design drastically reduces this scaling bottleneck. By amortizing evaluation logic across mutation task families, humans verify just 30 unique scripts to guarantee reliable high-fidelity evaluation for the entire 208-task benchmark with minimal labor.
RoboWits contains \(208\) diverse bi-manual manipulation tasks generated by our automated agentic pipeline introduced in Sec. 3.2, featuring \(30\) seed tasks and \(3\sim9\) mutations each requiring novel solutions, spanning three categories: geometry-based reasoning, material-based reasoning, and assembly reasoning, as shown in Fig. 5. Each task is assigned a difficulty score ranging from 1 to 5, reflecting increasing levels of reasoning and execution complexity, as shown in Fig. 6. Table [tab:delta95summary] further demonstrates the mutation strategies successfully adjust task difficulty as intended. Each task captures a distinct problem-solving pattern and is paired with a fixed evaluation metric that precisely defines task success. We instantiate all the tasks in Genesis [24], a unified physics simulator that supports diverse materials and robot control.
To support training and fine-tuning, we collect and release human teleoperation demonstrations for RoboWits. For the 30 seed tasks, we provide demonstrations from simulated teleoperation.
We conduct a series of experiments on RoboWits to answer three core research questions.
RQ1: Can Vision-Language-Action models control robots to creatively solve manipulation problems?
RQ2: Can Vision-Language-Action models perform robustly in the face of unexpected challenges?
RQ3: Can Vision Language Model-driven modular planners think out of the box?
While the capability to creatively solve manipulation problems is arguably learnable by imitation, and our benchmark demands zero-shot evaluation ideally, no existing robotic models have demonstrated such generalization. We follow similar principles in robotics manipulation benchmarks [1], [2] to fine-tune/train robotic models in a multi-task setting with 50 collected human demonstrations on 10 seed tasks, and test them on the seed tasks for 50 trials, and each of the mutation tasks for 5 trials respectively. All trials have randomized object position and rotations.
Robot system details. The robot system setup for RoboWits uses two 7-DoF Marvin arms with three cameras (two wrist and one base) and a 16-dimensional configuration and action space.
Baselines. We evaluate pre-trained VLAs, robot policy models, and VLM-based modular planners.
ACT [54], a transformer-based policy that learns action chunking from demonstrations
\(\pi_0\) [55], a pre-trained 3B VLA that predicts continuous action with flow matching.
\(\pi_{0.5}\) [56], a 3B VLA pre-trained with internet-scale data and robotics data that can generalize better.
VLM Planner\(^{**}\) A modular planner with oracle access to object states and perfect action primitives. It employs a VLM (gpt-4o) for high-level planning and assumes error-free
execution.
VLM Controller\(^*\) A modular planner similar to the above, but without perfect action primitives. It uses the same VLM for planning but relies on a human-scripted low-level controller for
execution.
| Geometry Tasks | Assembly Tasks | Material Tasks | All | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3-12 (lr)13-16 (lr)17-22 (lr)23-24 | Align Blocks | Retr. Cube | Dominos | Gap Retr. | Stand Bulb | Cover Lid | Ball Tower | Hold Cup | Pinch Card | Water Mug | Avg. | ||||||||||||
| 3-4 (lr)5-6 (lr)7-8 (lr)9-10 (lr)11-12 (lr)13-14 (lr)15-16 (lr)17-18 (lr)19-20 (lr)21-22 (lr)23-24 Method | Type | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS | SR | PS |
| Modular Planners | |||||||||||||||||||||||
| VLM Planner\(^{**}\) | Seed | 52.0% | - | 94.0% | - | 0.0% | - | 80.0% | - | 78.0% | - | 80.0% | - | 100.0% | - | 100.0% | - | 24.0% | - | 0.0% | - | 60.8% | - |
| Mut. | 33.3% | - | 20.0% | - | 0.0% | - | 80.0% | - | 42.9% | - | 80.0% | - | 87.5% | - | 100.0% | - | 0.0% | - | 0.0% | - | 44.4% | - | |
| VLM Controller\(^*\) | Seed | 0.0% | 0.00 | 20.0% | 0.71 | 0.0% | 0.61 | 0.0% | 0.64 | 30.0% | 0.56 | 0.0% | 0.37 | 10.0% | 0.35 | 10.0% | 0.42 | 0.0% | 0.55 | 0.0% | 0.29 | 7.0% | 0.45 |
| Mut. | 33.3% | 0.50 | 0.0% | 0.38 | 0.0% | 0.32 | 0.0% | 0.76 | 14.3% | 0.12 | 0.0% | 0.41 | 0.0% | 0.33 | 0.0% | 0.49 | 0.0% | 0.00 | 0.0% | 0.26 | 4.8% | 0.36 | |
| Vision-Language-Action Models | |||||||||||||||||||||||
| ACT | Seed | 16% | 0.30 | 2% | 0.02 | 82% | 0.95 | 6% | 0.06 | 2% | 0.54 | 0% | 0.50 | 0% | 0.56 | 0% | 0.48 | 2% | 0.60 | 0% | 0.29 | 11.0% | 0.43 |
| Mut. | 7% | 0.18 | 0% | 0.00 | 33% | 0.59 | 8% | 0.08 | 0% | 0.12 | 0% | 0.43 | 0% | 0.51 | 0% | 0.43 | 0% | 0.51 | 0% | 0.27 | 4.8% | 0.31 | |
| \(\pi_0\) | Seed | 14% | 0.29 | 0% | 0.00 | 92% | 0.98 | 16% | 0.16 | 0% | 0.56 | 0% | 0.56 | 0% | 0.57 | 0% | 0.56 | 0% | 0.60 | 0% | 0.32 | 12.2% | 0.46 |
| Mut. | 10% | 0.22 | 0% | 0.00 | 47% | 0.61 | 8% | 0.08 | 0% | 0.12 | 0% | 0.44 | 0% | 0.55 | 0% | 0.41 | 0% | 0.52 | 0% | 0.26 | 6.5% | 0.32 | |
| \(\pi_{0.5}\) | Seed | 24% | 0.39 | 2% | 0.02 | 80% | 0.96 | 18% | 0.18 | 0% | 0.57 | 0% | 0.57 | 0% | 0.53 | 2% | 0.53 | 0% | 0.52 | 0% | 0.26 | 12.6% | 0.45 |
| Mut. | 16% | 0.29 | 4% | 0.04 | 57% | 0.61 | 8% | 0.08 | 0% | 0.12 | 0% | 0.43 | 5% | 0.48 | 8% | 0.41 | 0% | 0.47 | 0% | 0.19 | 9.8% | 0.31 | |
Current VLAs struggle on RoboWits** even with single-task fine-tuning.** As detailed in Table 2, even after fine-tuning on 50 human demonstrations, pre-trained
models like \(\pi_0\) exhibit only preliminary success on seed tasks. In contrast, imitation learning baselines trained from scratch, such as ACT, fail significantly; this highlights the difficulty of our tasks
and the insufficiency of limited demonstrations for models lacking strong vision-language pre-training.
VLAs lack robustness under unexpected challenges. A comparison between seed tasks and their corresponding mutations reveals a drastic performance collapse across all VLAs, with progress scores frequently halved. For instance, in the Align Blocks task, \(\pi_0\) achieves a \(14\%\) success rate on the seed version but fails \(90\%\) of the time when faced with constraints like immovable blocks or occluded tools. This suggests that current VLAs rely on superficial correlations rather than a generalized understanding of task physics.
Vision-language planners show promise through closed-loop reasoning. Given oracle object states and action feedback, VLM-based planners achieve reasonable performance on seed tasks and demonstrate superior robustness to mutations. Our ablation study comparing open-loop and closed-loop variants underscores the necessity of reactivity: closed-loop planning (re-planning after each action) outperforms the open-loop baseline by 27.4 percentage points on seed tasks and 29.3 points on mutations. This gap confirms that real-time feedback is critical for adapting strategies to the unexpected challenges inherent in our benchmark.
Further findings, along with comprehensive supporting results, are detailed in Appendix 9.
We present RoboWits, a new bi-manual manipulation benchmark designed to evaluate robotic creative problem solving, tool use, and robustness to unexpected challenges. To scale task construction beyond manual design, we propose an automated multi-agent pipeline that jointly performs seed task creation, task diversification, verification, scene instantiation, and metric synthesis, enabling diverse reasoning-centric tasks with ground-truth evaluation. Using this pipeline, we build 30 seed tasks and expand them into 208 tasks with graded difficulty across geometry, material, and assembly reasoning. Comprehensive experiments on popular robot policy models in both zero-shot and fine-tuned settings show that while fine-tuning improves basic manipulation skills, substantial gaps remain in reasoning, strategy adaptation, and robustness under deceptive or constrained conditions. We hope RoboWits will serve as a scalable testbed for developing and diagnosing next-generation reasoning-driven VLA models and robust robotic problem-solving systems.
We thank Tsun-Hsuan Wang, Yi-Ling Qiao, Pengsheng Guo, and Xiaowen Qiu from Genesis AI for their helpful feedback and insightful discussion. This work was supported by NSF IIS-2441250, NSF IIS-2404386, and MURI.
The details of 30 seed tasks are as follows. The ego-centric view of the seed task gallery is in Figure 8.
align blocks: Align the three cubes perfectly in a straight line.
The task is to arrange multiple scattered cubes into a precise linear sequence. Attempting this cube-by-cube with a standard gripper is inefficient and prone to misalignment. The solution exploits the one-dimensional geometric property of
the ruler’s edge to act as a physical constraint, ensuring that all objects sharing contact with that edge are perfectly aligned.
retrieve cube: Retrieve the cube from the container and place it on the green target area.
The challenge involves retrieving a target object that is not directly reachable by the robot’s end-effector due to geometric constraints. The task requires the robot to first pour the cube out of the deep narrow container and then move it to the target
area.
gap retrieve: Place the lemon on the green target area.
The task is to place a lemon on a target area. The lemon is located in a narrow channel. The channel is formed by the left and right boundary blocks, creating a space too narrow for a standard robotic gripper to enter. The solution requires first moving
one boundary block to form a larger gap, then grasping the lemon and placing the lemon on the target area.
pinch card: Pick the bank card up from the ‘small table’ surface.
The ‘bank card’ is too thin and slippery for a standard gripper to push directly on a flat surface. The robot must utilize the friction and deformability of the ‘eraser’ to create enough lateral force to move the card. This material property is essential
because the high-friction interface allows the robot to translate the card to a position (the small table’s edge) where its geometric constraints no longer prevent a successful grasp.
roll up box: Move the box into the basket.
The task is to move a box vertically onto a basket. Since the box is too heavy to lift, the robot must use the inclined plane (a simple machine formed by the board and the basket edge) to reduce the required force. This utilizes the box’s sliding property
to smoothly ascend the ramp surface.
dominos: Push the red block onto the green target area.
The ‘red block’ and ‘white block 1,2,3’ are out of reachability, but happen to form a domino structure when they fall. The robot must use the ‘white block 4’ within the reachability to reach ‘white block 3’. To make a perfect chain of falling, the robot
must push the upper part of ‘white block 3’ and finally, the ‘red block’ is pushed onto the ‘target area’.
stand pages: Assemble the two pages using the stabilizing bar to create a standing hinge structure.
Individually, the pages lack the base width to overcome tipping forces. The robot must transform these 2D objects into a stable 3D structure by utilizing a pin-joint mechanism. By inserting the bar through the holes, the robot creates a
mechanical constraint that links the two objects, allowing them to lean against each other and support their combined weight against gravity.
round dough sheet: Flattern the dough ball and make a perfect round sheet
The task requires creating a precise round shape. It’s difficult to flatten the dough evenly with a parallel gripper, so the robot uses the planar surface of the board to distribute pressure. Achieving a perfect round shape requires utilizing the circular
symmetry of the separate cutting-edge object.
hold cup: Put the cup on the green target area on the slope without sliding down.
The ‘cup’ and ‘slope’ lack sufficient friction to remain stationary. The robot must utilize the surface friction and thin-film flexibility of the cloth to stabilize the cup. This material property is essential because the
coaster acts as a high-friction interface that compensates for the low-friction property of the standard rigid materials (the cup and the table).
collect screws: Collect the screw into the container
The screw is too small to be easily grasped directly. The robot must use the dustpan and spatula to collect the screw first and then put it into the container.
place tall box: Move the rectangular box onto the green target area.
The obstacle enforces a geometric clearance constraint. The beam cannot be moved or raised. The solution relies on changing orientation to reduce the effective height, exploiting the different cross-sectional dimensions of the box to fit under the low
beam. Tipping the box to a diagonal lean to and pushing it under the beam is not feasible, because the gripper cannot keep the balance of the box.
ball into bottle: Transfer the ball from the blue container into the red bottle.
The ‘funnel’ provides a wide capture entrance. Gravity guides the ball through the spout into the bottle. The ‘ball container’ is graspable and can be poured into the funnel opening. Otherwise, without the funnel, directly pouring the ball into the
bottle’s mouth is very difficult and requires high precision.
cover with lid: Cover the pot precisely using one lid.
This requires reasoning about cross-sectional fit. Only the correctly sized circular lid will cover the opening with minimal excess. The circular geometry and ring reference enable precise centering without measurements.
stack cubes: Build a stable two-layer stack so the red cube’s center is above the green colored dot.
A wide base increases stability by lowering the combined center of mass and increasing the support polygon. The geometric arrangement is necessary to keep the top cube centered over the marker.
separate marbles and sand: Remove sand from the jar and keep the marbles in the jar.
Individual grains are too small to pick efficiently. By assembling a colander over a bowl, the robot creates a gravity-powered separator that splits marbles from sand and enables clean transfer into the jar.
stand bulb: Stand the tall object with a curved bottom stably within the green target area.
A tall object with a curved bottom is prone to tipping due to a curved base. A surrounding ring provides lateral support and increases the effective base, using geometry for stability.
ball onto tower: Place the ball stably on top of the tower.
The tower pole alone cannot support the ball as it would roll off. The base can only fit 2.5 rings inside its height, so stacking all three rings causes the top ring to protrude above the pole, creating a hollow cup-like surface where the ball can rest
stably in the center.
cylinder through hole: Insert the long rod through the opening so it rests over the green colored patch.
A circular peg requires coaxial alignment to pass a circular hole. This uses cross-section geometry and orientation matching.
stack bowls: Nest the smaller bowl concentrically inside the larger one.
Concentric alignment leverages circular geometry; matching rims provide a strong geometric signal for proper nesting.
ball into jar: Put the foam ball fully into the jar.
The ‘foam ball’ is larger than the ‘glass jar’ mouth when undeformed. The task leverages the elasticity and compressibility of the foam to change its shape and pass through the restriction, which is not possible with a rigid sphere.
seal colander: Make the container hold water for a short time.
The perforations of the ‘perforated container’ prevent it from holding liquid. By placing the ‘curved holder’ onto the ‘perforated container’, the robot can pour the ‘water’ from the ‘pitcher’ into the ‘curved holder’ onto the’perforated container’ and
verify it holds.
stabilize bottle: Make the tube stand upright in the bowl without falling for a short time.
The narrow base of the ‘tube’ makes it unstable. Granular packing of the ‘dry sand’ around the base provides distributed support and friction, stabilizing the tube without direct clamping by the gripper.
place book: Move the ‘thin book’ onto the ‘blue target mat’ without moving the heavy block from its place.
This is a practical tabletop retrieval scenario: a book is pinned under a heavy object (like a paperweight or block) and must be pulled out without disturbing the weight. The pry board acts as a shim to get under the book edge, locally reducing contact
pressure and friction so the book can be slid out while the block is stabilized from above.
raise platform: Create an elevated platform and place the book on it.
The goal requires supporting a load above the table. Assembling two equal-height supports and a rigid deck creates a stable platform that can hold the book without touching the table.
water into mug: Collect water in the mug without moving the pitcher.
The ‘pitcher’ is fixed and cannot be tilted to pour water directly. By dropping the ‘heavy large object’ into the pitcher, the robot exploits Archimedes’ principle of water displacement to raise the water level and cause overflow into the ‘mug’,
demonstrating understanding of fluid displacement physics.
align chopsticks: Make all six chopsticks point in the same direction, with their small thin ends all facing the same way.
The task is to align six chopsticks so they all point in the same direction. Initially, the chopsticks lean on a board with mixed orientations, some with the heavy end on the board, others with the thin end. By pushing a ruler to slide the chopsticks
further onto the board, the asymmetric mass distribution causes chopsticks of different orientations to behave differently: those with the heavy end on the board will settle flat, while others remain tilted. This physical cue reveals which
chopsticks need to be flipped, enabling efficient sorting and alignment.
retrieve roll: Use the long rod to retrieve the out-of-reach roll and move it to the green target area.
The roll is placed beyond the robot’s direct reach, making it impossible to grasp directly. By using the rod as a tool extension, the robot can extend its effective reach. Inserting the rod into the hollow part of the roll creates a mechanical coupling
through friction and geometric constraint, allowing the robot to lift and transport the roll as a single rigid-body system. This task demonstrates tool use for reach extension and object manipulation through insertion.
move cube: Move any of the three cubes to the left of the goal line.
This task requires the robot to understand and exploit the friction properties of different surfaces. The smooth slope has very low friction, allowing objects to slide freely, while the rough slope has very high friction that would stop
the cube. The robot must select the correct slope to enable the cube to gain enough momentum to slide past the goal line. This tests the robot’s ability to reason about material properties and their effect on object dynamics.
balance board: Place the board onto the wall and keep it balanced.
The goal requires balancing a board on a narrow support. The key insight is to recognize that the board must be placed with its center of mass directly above the wall to maintain equilibrium.
differentiate cubes: Place the wooden cube to the green target area. Keep the metal cube inside the mug.
The challenge involves differentiating two objects that appear similar but have different material properties. The robot must use physical reasoning to identify which cube is wooden by exploiting the buoyancy property - wood floats in water while metal
sinks. This requires the robot to perform an intermediate action (pouring water) to reveal the hidden material property before completing the placement task.
The mutation and verification process can be summarized as Algorithm 9.
As shown in Figure 4, we use the retrieve cube task as a running example to illustrate how different mutation strategies generate diverse task variants. The seed task retrieve cube requires the robot to retrieve a cube from a narrow-opening container and place it onto a green target area (Initial). Since the opening is too small for the gripper to enter, a natural potential solution is to lift the container, pour the cube out, and then place the cube onto the target area.
During the pivot phase, one effective way to block the original solution is to fix the narrow-open container to the table, making it impossible to lift and tilt anymore. Under this constraint, one pivot introduces a long spoon with a small head, enabling the robot to scoop the cube out (Pivot1). Another pivot adds a cup of water and specifies the cube has low density, allowing it to float upward until it becomes reachable (Pivot2). Building on (Pivot2), the water cup is replaced with a water tank, making direct pouring infeasible. The task is then pivoted again by adding a kitchen ladle, which allows the robot to transfer water from the tank into the container (Pivot3).
As examples of trap mutations, based on (Pivot1), a large spoon is added as a trap (Trap1), since it appears useful for scooping but it can’t fit in the narrow opening. Another trap adds a cup of water (Trap2) to Initial, which may look helpful but leads to a less efficient and more difficult strategy compared to scooping. Also based on (Initial), a wooden skewer is added to mislead an implausible strategy of stabbing the cube and pulling it out (Trap3); however, the cube is rigid and can’t be penetrated, making the skewer inefficient.
Finally, for add mutations, tasks sampled from the task pool (Initial, Pivot1-3, Trap1-3) are augmented with random distractor objects from a predefined list. In this example, distractors include an IKEA plate, a TV remote controller, a copper kettle, a lemon, a paper cup, a water bottle with handle and pump, and a wrench, which form additional cluttered variants (Add1-3).
Fig 10 depicts three examples of mutation trees.
VLM Controller and VLM Planner are agents based on gpt-4o, who has access to different levels of oracles. The prompt templates can be found in Appendix 10.8 and 10.9.
ACT is trained for 100,000 steps with a chunk size of 50, batch size of \(256\).
\(\pi_0\) is fine-tuned for 100,000 steps with an effective batch size of \(64\).
\(\pi_{0.5}\) is fine-tuned for 100,000 steps with an effective batch size of \(64\).
We trained baseline models on 8 RTX 6000 for two days on average.
To better illustrate the coverage of the tasks in our benchmark, we compiled the following statistics.
| Count | Examples | |
|---|---|---|
| Object Instances | 264 | cup, sponge, ruler, block, ... |
| Object Categories | 13 | containers, tools, food, toys, ... |
| Spatial Relations | 14 | on, inside, between, under, ... |
| Manipulation Primitives | 32 | lift, push, pour, scoop, ... |
| Reasoning Patterns | \(>75\) | 30 Seed + 45 Pivot |
We conducted additional evaluations of the VLM Planner using Gemini 3 Pro. As shown in Table 4, the overall performance is comparable to GPT-4o, although we observed slightly higher API latency with Gemini.
| GPT-4o | Gemini 3 Pro | |
|---|---|---|
| Seed SR | 60.8% | 69.6% |
| Mutation SR | 44.4% | 47.3% |
For the results reported in the paper, we keep a minimalist prompt design, focusing on standardizing the I/O format and defining available action primitives. We tried prompt tuning and did not observe obvious differences. From our observation, the planner is not sensitive to specific prompt engineering, and the bottleneck lies in the model’s core reasoning ability.
To clarify whether failures stem from reasoning, execution, or other factors, we analyzed success rates (SR) across mutation types. Here, Add(n) denotes introducing \(n\) irrelevant distractor objects during the Add mutation.
| Pivot | Trap | Add(1) | Add(2) | Add(3) | |
|---|---|---|---|---|---|
| ACT | 1.7% | 5.1% | 13.3% | 13.5% | 4.3% |
| \(\pi_0\) | 2.0% | 6.4% | 13.3% | 17.6% | 11.1% |
| \(\pi_{0.5}\) | 3.7% | 5.4% | 15.0% | 12.1% | 7.7% |
Video observations reveal that the specific physical errors directly correlate with the mutation type.
For Pivot, which has the lowest SR, models show no strategy transfer. Physically, they may fail by stubbornly attempting to manipulate immovable objects or continuing original trajectories even when objects are accidentally displaced, indicating a true lack of physical reasoning.
For Trap and Add, SR drops as more objects are introduced, with Add(1/2) SR \(>\) Add(3) SR. The physical errors here are primarily driven by distraction, where models may physically freeze due to out-of-distribution visual data or incorrectly reach distractor objects.
To investigate whether more demonstration data could help models perform better on RoboWits, we train \(\pi_0\) with 50 and 200 demonstrations, respectively, for two representative tasks.
| Number of Demos | Align Blocks | Dominos |
|---|---|---|
| 50 | Seed: 44%, Mut.: 24% | Seed: 70%, Mut.: 47% |
| 200 | Seed: 54%, Mut.: 33% | Seed: 94%, Mut.: 52% |
Dominos relies on a single optimal strategy, i.e., using a pusher to topple the dominos. Scaling the demonstration data provides a clear, consistent signal to resolve the motor-control bottleneck, improving Seed performance from 70% to 94%. In contrast, Align Blocks requires closed-loop adjustments across multiple valid strategies, such as gathering blocks before aligning them, or aligning two blocks first and then placing the third. This multi-modal nature explains its marginal improvement from data scaling and its greater robustness.
Most importantly, despite improvements on the Seed tasks, performance on the Mutation tasks remains low. This confirms our main conclusion: current VLAs cannot perform robustly when faced with unexpected reasoning-level challenges. The primary bottleneck is indeed poor reasoning rather than control limitations.
As a simulation-based benchmark, this work is limited by the sim-to-real gap. Although we use high-fidelity rendering and advanced physics engines to narrow this divide, perfectly replicating complex real-world contact dynamics remains an open challenge. Additionally, the reliance on highly realistic physical interactions yields a computational trade-off: the non-linear dynamics of soft-body simulations are computationally expensive, which limits the rapid execution of large-scale evaluations compared to rigid-body counterparts.
markdownSeed Task Generator System Prompt You are a Robotics Task Designer generating complex, skill-based challenges for a dual-arm robot equipped with parallel grippers (the workspace is a 1.05m x 1.7m table surface, with a bounds of "x_min": 0, "x_max": 1.05, "y_min": -0.85, "y_max": 0.85, "z_min": 0.8, "z_max": 0.8). Each task must be returned as a JSON object, and all the tasks must be contained within a single JSON array.
TASK FORMAT: “‘json [ "task_name": "a concise and meaningful name of the task", "object_list": [ "object_name": "abstract functional name of the object (e.g., ’straightedge tool’ instead of ‘ruler’, ‘high-friction pad’ instead of ‘rubber mat’)", "appearance_attribute": [ "an array of required appearance attributes of the object, including its shape, size, color, high or short, fat or slim, ..." ], "functional_attribute": [ "an array of required functional attributes of the object, including its material, density, friction, movability, ..." ], "potential_instances": [ "at least 3 daily object names to fit the object with attributes required", "...", "..." ], "use_primitive": null, "asset_id": null // ... continue for all necessary objects ], "initial_scene_setup": "the initial scene setup to form the task, describe the required position and/or relationship of all objects in the object_list", "task_instruction": "the goal of the task without hinting at the solution", "task_success_criteria": "the signals to show the task is completed, easy to quantalize, no subjectives,", "potential_solution": "how the task should be solved in the easiest way with the current objects provided", "task_description": "describe the task in detail, including the goal, the challenge, and why the potential_solution is valid and efficient for the task." // ... continue for more unique tasks ]”’
CONSTRAINTS FOR OBJECTS: - DO NOT include articulated objects in the object_list. - DO NOT include objects involving aerodynamics, magnetism, thermodynamics, sticky materials or unintended flaws (e.g., unintended holes, scratches, wear, or micro-grooves). - The object must be a very common daily item (e.g., mug, hammer, stapler, apple) for which 3D assets are easily found online. - DO NOT include the words ‘a’, ‘an’, or ‘the’ in the ‘object_name’ of the object. - Use ABSTRACT FUNCTIONAL names for ‘object_name’ that describe the object’s role in the task, not specific instances. For example: use "straightedge tool" instead of "ruler", "high-friction pad" instead of "rubber mat", "narrow opening container" instead of "bottle", "flat retrieval target" instead of "bank card". List specific instances in ‘potential_instances’. - An object in the ‘object_list’ represents a single object (except for liquid and granularity). If there are multiple objects of the same category, write them separately in the ‘object_list’ (e.g., "boundary block 1", "boundary block 2"). - DONOT use mechanism names like "inclined plane" or "gap" in the object_list. Instead, DO list the physical objects that create these mechanisms (e.g., a "support block" and a "ramp board" forming the inclined plane). - An object is of a single material type. Instead of adding "a cup of water", add a "cup" and a "water" separately and specify the ‘water’ fills more than half of the ‘cup’ in the ‘initial_scene_setup’. - Only list necessary attributes of the object that is important for the task, not all the appearance or functional attributes. Consider specify attributes to realize ideal constraints, like "out of reachability" to avoid direct manipulation. - The ‘use_primitive’ and ‘asset_id’ of objects will always be null.
CONSTRAINTS FOR OTHERS: - DONOT generate tasks that require breaking, permanently deforming (except for soft, intended-to-be-deformed objects like "dough"), or damaging any shape. - Ensure all the objects mentioned in the ‘initial_scene_setup’, ‘task_instruction’, ‘task_success_criteria’ and ‘potential_solution’ are in the ‘object_list’, except the table and the robot. - Ensure the ‘initial_scene_setup’ and ‘object_list’ are perfectly aligned. - Quote ‘object_name’ whenever it appears in the ‘initial_scene_setup’, ‘task_success_criteria’, ‘potenrial_solution’ and ‘task_description’. - Ensure the ‘task_instruction’ is a single, concise sentence in natural language. DO NOT hint at the solution, quote ‘object_name’, or use techinical jargon like "target position". Instead, use grounded descriptions like "the green target area". - Define the ‘task_success_criteria’ based on visible, quantifiable physical signals or events that are easy to verify. Descriptions must be strictly quantified rather than qualitative, for example: instead of "the ‘cube’ is moved to the ‘target area’," use "the ‘cube’ is on the table surface, and the overlap between the ‘cube’ and the ‘target area’ is greater than 50 IMPORTANT: - DO NOT assume any verbal constraints like "without directly grasping", "without touching the table surface". Use physics grounded constraints like "out of reachability" or "larger than gripper’s open". - DO NOT generate over-simple tasks that can be solved by a single pick-and-place. - Note that parallel grippers are rigid (no compliance) and the friction coefficiency of gripper fingers is small. Operating sharp or thin objects, especially those lying flat on a table, is difficult. - Note that it is non-trivial for a robot arm to perform rotations or follow circular/arched trajectories.
markdownTask Verifier System Prompt You are a Robotic Simulation Expert. Given manipulation tasks for a dual-arm robot equipped with parallel grippers (the workspace is a 1.05m x 1.7m table surface, with a bounds of "x_min": 0, "x_max": 1.05, "y_min": -0.85, "y_max": 0.85, "z_min": 0.8, "z_max": 0.8), your role is to audit input tasks for Completeness, Simulatability, Feasibility, and Solution Efficiency. Return ONLY a JSON object in the following structure:
INPUT FORMAT: ...
OUTPUT FORMAT: “‘json "completeness": "completeness": "yes"/"no", "missing_objects": ["object_name_1", ...], "reason": "..." , "simulatability": "difficulty": "easy"/"hard"/"impossible", "challenging_objects": ["object_name_1", ...], "reason": "..." , "solution_feasibility": "feasibility": "very feasible"/"kind of feasible"/"not feasible", "not_feasible_step": "...", "reason": "..." , "solution_efficiency": "efficiency": "yes"/"no", "bypass_solution": "...", "bypass_objects": ["object_name_1", ...] , "difficulty": "score": "1-5", "reason": "..." “’
CRITERIA FOR JUDGING: 1. Completeness: - Yes (Complete): All the objects mentioned in the ‘initial_scene_setup’, ‘task_instruction’, ‘task_success_criteria’ and ‘potential_solution’ are in the ‘object_list’, except the table and the robot. - No (Not Complete): There are missing obejcts mentioned but not in the ‘object_list’. 2. Simulatability: - Impossible: Tasks involving aerodynamics, magnetism, thermodynamics, sticky materials, abstract objects (e.g. a narrow gap), or geometry with unintended flaws (e.g., unintended holes, scratches, wear, or micro-grooves). - Hard: Tasks involving contact-rich rigid-body interactions, soft bodies, liquids (including buoyancy), or components requiring extreme precision (e.g., specific gears or screws). - Easy: Standard rigid-body interactions with simple geometries. 3. Solution Feasibility: - Not Feasible: Solutions requiring breaking, tearing, or creating permanent defects (e.g., drilling holes) are not feasible. High-complexity multi-object interactions that exceed dual-arm coordination limits are also considered not feasible. - Kind of Feasible: Solutions requiring highly precise dynamic control, such as throwing, catching, or hitting. - Feasible: Ensure a parallel gripper can physically reach the described grasp points without collision. - Note that parallel grippers are rigid (no compliance) and the friction coefficiency of gripper fingers is small. Operating sharp or thin objects, especially those lying flat on a table, is difficult. - Note that it is non-trivial for a robot arm to perform rotations or follow circular/arched trajectories. 4. Solution Efficiency (Bypass Check): - No (Not Efficient): The task is not efficient only if there is a significantly easier or more efficient solution. - Yes (Efficiency): If there is no other way except ‘potential_solution’ to solve the task, it’s efficient. If there are other solutions, but ‘potential_solution’ is easier for operation (e.g. requiring simple pick-and-place, avoiding bi-arm co-operation, avoiding precise or highly dynamic control) or saving more steps than others (e.g. saving two or more steps to finish), it is considered efficient. - Note that parallel grippers are rigid (no compliance) and the friction coefficiency of gripper fingers is small. Operating sharp or thin objects, especially those lying flat on a table, is difficult. - Note that it is non-trivial for a robot arm to perform rotations or follow circular/arched trajectories. 5. Difficulty (a score between 1 and 5): - Score 1: Tasks can be solved within two steps. Each step involves a single robot arm to operate a single object, and the two robot arms don’t need to operate together. The objects used in the ‘potential_solution’ are common in daily life and easy to operate by a robot arm with a parallel gripper. - Score 2: Tasks can be solved within three steps. Each step involves one or two robot arms to operate a single object. The objects used in the ‘potential_solution’ are common in daily life and easy to operate by a robot arm with a parallel gripper. - Score 3: Tasks can be solved within four steps. Each step may involve more precise or complex operations than a simple pick-and-place on a single object, or two robot arms perform simple operations on two different objects at the same time. The objects used in the ‘potential_solution’ are common in daily life. - Score 4: Tasks can be solved within four steps. Some steps rely on previous steps to finally build a system consists of different objects to function together. - Score 5: Tasks harder than of score 4.
markdownTask Mutator System Prompt You are a robotic task augmentation expert. You modify task JSONs to adjust difficulty and environment complexity through the following four mutation types.
INPUT FORMAT: ...
MUTATION TYPES: 1. Pivot: Block the current ‘potential_solution’ by modifying or removing objects in ‘object_list’, then add new objects to support a new solution. - Modify or remove the MINIMAL number of existing objects (usually the primary tool) to block the current solution. - For any object mentioned in ‘task_success_criteria’, it is not removable, and its ‘object_name’ is not modifiable. Only attributes can be modified. - Add the MINIMAL number of new objects to enable a new, alternative solution. - Keep all other objects the same to preserve the scene’s identity. 2. Trap (ADDITIVE ONLY): - Add exactly one object that looks like a potential solution but fails due to wrong attributes (e.g., a “soft” bridge that collapses, a “light” hammer, a screwdriver “fixed on the table”). - You must NOT modify or remove any original objects in the ‘object_list’. 3. Related (ADDITIVE ONLY): - Add N objects that belong in the environment (e.g., a fork in a kitchen) but are unnecessary for the solution. - You must NOT modify or remove any original objects in the ‘object_list’. 4. Unrelated (ADDITIVE ONLY): - Add N objects as visual/spatial noise (clutter). - You must NOT modify or remove any original objects in the ‘object_list’.
IMPORTANT: - Always return the full, valid JSON object. - Ensure ‘object_list’ and ‘initial_scene_setup’ are perfectly synchronized. - For ADDITIVE types, the ‘object_list’ must contain all original objects plus the new ones. - For modifications, only attributes and ‘potential_instances’ are modifiable. If ‘potential_instances’ is modifed, the ‘use_primitive’ and ‘asset_id’ should be set null. Otherwise, the ‘object_name’, ‘use_primitive’ and ‘asset_id’ should remain the same. - DO NOT make unnecessary modifications or removal. - DO NOT remove or modify objects that are mentioned in the ‘task_success_criteria’.
CONSTRAINTS FOR ADDING NEW OBJECTS: - DO NOT include the words ‘pivot’, ‘trap’, ‘related’, or ‘unrelated’ in the ‘object_name’ of the object. - DO NOT include the words ‘a’, ‘an’, or ‘the’ in the ‘object_name’ of the object. - DO NOT add articulated objects in the object_list. DO NOT add objects involving aerodynamics, magnetism, thermodynamics, sticky materials or unintended flaws (e.g., unintended holes, scratches, wear, or micro-grooves). - The object must be a very common daily item (e.g., mug, hammer, stapler, apple) for which 3D assets are easily found online. - An object in the ‘object_list’ represents a single object (except for liquid and granularity). If there are multiple objects of the same category, write them separately in the ‘object_list’. - An object is of a single material type. Instead of adding “a cup of water”, add a “cup” and a “water” separately and specify the ‘water’ fills more than half of the ‘cup’ in the ‘initial_scene_setup’. - The ‘use_primitive’ and ‘asset_id’ of newly added objects will always be null.
markdownMetric Generator System Prompt You are a Robotic Evaluation Specialist expert in physics-base simulation and spatial reasoning. Your role is to generate a function ‘_is_completed(objs_info) -> bool’ that determines if a specific task has been successfully executed. The task is for a dual-arm robot equipped with parallel grippers (the workspace is a 0.79m x 1.38m table surface, with a bounds of "x_min": 0.21, "x_max": 1.00, "y_min": -0.69, "y_max": 0.69, "z_min": 0.76, "z_max": 0.76). The input is a JSON-formatted task. You must output a JSON object containing a Python function ‘_is_completed(objs_info) -> bool’.
TASK FORMAT: ...
DATA SCHEMA: The input argument ‘objs_info’ of the function you need to generate is of ‘dict’ type. It lists the status of all the objects in the ‘object_list’. The format is: “‘json "object_name_1": "material": "rigid" | "particle", "pos": np.array, "euler": np.array or null, "vel": np.array, "bounds": np.array or null, "convex_hull_2d": np.array or null, , "object_name_2": ... , ... “’ For "rigid" objects: - "pos": the object’s 3D position of shape (3,). - "euler": the object’s rotations in degrees of shape (3,). - "vel": the object’s 3D linear velocity of shape (3,). - "bounds": The AABB bounding box of the object, ((x_min, y_min, z_min), (x_max, y_max, z_max)) of shape (2, 3). - "convex_hull_2d": The 2D convex hull of the object’s vertices projected onto the x-y plane (table surface), of shape (N, 2) where N is the number of vertices in the convex hull. Each vertex is (x, y) coordinates. Prefer using this over "bounds" for spatial checks as it provides more precise geometry. For "particle" objects (fluid, softbody, granularity): - "pos": the 3D position of N particles of shape (N, 3). - "vel": the 3D linear velocity of N particles of shape (N, 3). - no "euler" or "bounds" provided.
IMPLEMENTATION REQUIREMENTS: 1. Output Convention: - True: the task is completed and succeeds. - False: the task is incomplete and fails. 2. State Extraction: Use the provided code to identify entity names and their starting positions. Use scene.entities to access these objects within the code block. 3. Stick to ‘task_success_criteria’: Implement the natural language success criteria in Python code. 4. Spatial precision: When performing spatial checks (e.g., checking if objects are on the table, checking positions, overlaps), prefer using ‘convex_hull_2d’ over ‘bounds’ (AABB) for rigid objects, as ‘convex_hull_2d’ provides more precise geometry representation. 5. Default criteria: - Only check objects that are involved in the task_success_criteria. For those objects, ensure they do not fall off from the table (excluding ‘table’ and ‘robot’ from checks).
OUTPUT FORMAT: “‘json "_is_completed": "def _is_completed(objs_info) -> bool:C̈̈̈hecks if the task is completed.̈̈̈..." “’
markdownScene Generator System Prompt You’re Scene Agent, a highly advanced AI agent that automatically sets up the table-top scene for a dual-arm robot equipped with parallel grippers following a natural language description of the initial scene setup using the Genesis Physics Engine and an asset library. The workspace is a 0.79m x 1.38m table surface, with a bounds of "x_min": 0.21, "x_max": 1.00, "y_min": -0.69, "y_max": 0.69, "z_min": 0.76, "z_max": 0.76. You have tools to retrieve realistic assets from a library, add entities in the Genesis Physics Engine, and render the scene for visual verifications.
<tool_preambles> - You MUST plan extensively before EACH tool call, and reflect extensively on the outcome of EACH tool call. - DO NOT do this entire process by making tool calls only. - As you execute your tools, narrate each step succinctly and sequentially, marking progress clearly. </tool_preambles>
<persistence> - You are an agent - please keep going until the complete scene is built, and the image user requested is finalized and the path of which is reported by calling tool ‘finalize_outcome’, before ending your turn and yielding back to the user. - Only terminate your turn when you are sure that the scene is built and stable, and the image of the scene after 100 steps is rendered and provided to the user. - Never stop or hand back to the user when you encounter uncertainty or errors - research or deduce the most reasonable approach and continue. - Do not ask the human to confirm plans or clarify assumptions, as you can always adjust later - decide what the most effective plan and reasonable assumption is, and proceed with it. </persistence>
An entity consists of three components: - Morph: defines the shape and geometry - Material: defines physical properties - Surface: defines visual appearance
Reachable Region: "x_min": 0.30, "x_max": 0.72, "y_min": -0.45, "y_max": 0.45 All objects must be placed within this primary bounding box unless otherwise specified. This represents the maximum reach of the robot’s end-effectors on the planar surface.
Forbidden Region: "x_min": 0.30, "x_max": 0.61, "y_min": 0.20, "y_max": 0.40, "x_min": 0.30, "x_max": 0.61, "y_min": -0.40, "y_max": -0.20 Objects must strictly avoid these two areas where the robot arms are currently stationed. If the bounds of the object overlap with these two regions, the robot will be in collision with the robot.
Your Workflow:
1. Create Entities - If object in the object list has assigned ‘use_primitive’ or ‘asset_id’, respect it, use ‘retrieve_asset_info_by_id’ tool to get the information of the asset. - Otherwise, always seek for suitable assets in the model library first. Only use primitives when there’s no good choice. - Scale the asset properly based on its bounds and the table surface dimension of 0.79m x 1.38m, gripper’s gripping range of 0mm-95mm. - Make sure the actual size of the objects satisfy the relationship implied in initial scene setup and task description. - Use the name provided in the object list as the entity name. 2. Place Entities - With a retrieved asset, the appropriate ‘position’, ‘euler’ should be computed based on the asset’s bbox after scaling and the desired world-space alignment. - For liquids/granular objects (water, sands) that should be contained in a container object, carefully interpret the volume they should occupy (which may be smaller than the container object’s bounds due to non-convex decomposition and non-containing parts like a handle on the mug). No particles should be outside of the container, which could be infered both from ‘get_entity_info’ and ‘render_current_frame’. Particles going out of containing bounds are a common cause of simulation instability. - Avoid placing entities too close together to prevent collisions. 3. Verify Entities: - Use ‘render_current_frame’ tool to get visual feedback of the current tabletop scene from four different views, and exmaine it carefully. - Use the ‘get_entity_info’ tool to retrieve the current details of the entity. - Make sure no entity is in collision with other entities. Otherwise, adjust the ‘euler’, ‘scale’, and ‘position’ accordingly. - Make sure the spatial relationship among entities are as expected. Otherwise, adjust the ‘euler’, ‘scale’, and ‘position’ accordingly until it’s correct. - Make sure no particles are out of the containing bounds. - Use the ‘render_final_frame’ tool to get the view of the scene after 100 steps. The scene should be static and stable. Check all objects especially deformable objects are still visible in the scene. If the images of the current scene and final scene after 100 steps are different, the scene is not stable, check for collisions or too small dt for deformable entities.
Reminders: - The scene is preloaded with entities ‘table’ and ‘robot’, respect their dimensions and align entities to add with them. - All entities must not be placed in the Forbidden Region which is already occupied by the robot arms, and must be placed within reachable region unless otherwise specified. - Robot has two arms, equipped with parallel grippers of range 0mm-95mm. - User input is a complete task json, but you should only focus on the ‘initial_scene_setup’ and ‘object_list’, set up the tabletop scene satisfying the requirement implide by these two information and do not give away the ‘potential_solution’. - Avoid overlapping entities to prevent collisions. - The center of geometry defines the position of an entity. - If retrieved assets are not suitable, do not use them. - There might be discrepancies between the asset’s bounding box and the actual geometry after loading into Genesis. Always verify the entity’s bounding box after creation. - Fixed entity has zero dofs and cannot be controlled. - A non-articulated rigid entity has 6 dofs, in the form of [x, y, z, roll, pitch, yaw] - Prioritize "recon" vis_mode for particle materials MPM and SPH. Default vis_mode of "visual" is only appropriate for rigid materials. - Favor informative code over defensive code - design it so that failures expose the underlying issue clearly through runtime results. - Always strictly follow the coordinate system in the Genesis Physics Simulator. Do not assume conventions from other 3D, graphics, or physics engines. When interpreting spatial directions (such as ‘in front of’, ‘looking from the right’, etc.), always map these to the Genesis coordinate system: - **Origin:** Center of the world ([0, 0, 0]) - **Positive x-axis:** Forward - **Positive y-axis:** Right - **Positive z-axis:** Up - Spatial Term Glossary - "in front of": along the positive x-axis - "behind": along the negative x-axis - "to the right of": along the positive y-axis - "to the left of": along the negative y-axis - "above": along the positive z-axis - "below": along the negative z-axis - "Facing each other" means their forward directions are opposite. - Once you’ve setup the complete tabletop scene to task the dual-arm robot, and render a final view of the scene after 100 steps, call ‘finalize_outcome’ tool to signal the task has been finished.
An example of task representation.
jsonTask Schema Example "task_name": "moving a large ball up", "object_list": [ "object_name": "a large ball", "shape": "sphere", "material": "rigid", "material_attribute": ["rigid", "heavy"], "geometric_attribute": ["relatively large", "smooth"], "functional_attribute": [ "can’t be grasped by a single robotic parallel gripper", "smooth surface for rolling" ], "example_objects": ["a basketball", "a bowling ball", "a large exercise ball"], "use_primitive": null, "asset_id": null , "object_name": "a short base block", "shape": "cube", "material": "rigid", "material_attribute": ["rigid", "stable"], "geometric_attribute": ["short in height"], "functional_attribute": ["standing steadily on the table"], "example_objects": ["a book", "a small box", "a pencil case"], "use_primitive": null, "asset_id": null , "object_name": "a long flat board", "shape": "cube", "material": "rigid", "material_attribute": [ "rigid"], "geometric_attribute": ["very short in height", "long", "wide"], "functional_attribute": ["smooth surface for rolling"], "example_objects": ["a painting frame", "a cutting board", "a serving tray"], "use_primitive": null, "asset_id": null ], "initial_scene_setup": "Place the short base block at the target location where the heavy ball must end up. Position the long flat board flat on the table near the base block. Place the heavy ball on the table surface a short distance away so that the robot must arrange the block and board to form a usable ascending surface.", "task_instruction": "Move the heavy ball onto the short base block.", "potential_solution": "Use the long flat board and the short base block to form an inclined plane. Then, push the heavy ball up the inclined plane, leveraging its rolling property to save energy compared to lifting.", "task_description": "The task is to move a heavy ball vertically onto a base. Since the ball is too heavy to lift, the robot must use the inclined plane (a simple machine formed by the board and block) to reduce the required force. This utilizes the ball’s rolling geometry to smoothly ascend the ramp surface.",
An example of a task verification result.
jsonVerification Result Example "simulatability": "difficulty": "hard", "challenging_objects": [], "reason": "Assembling an inclined plane and pushing a heavy sphere up it involves multi-body contacts, rolling friction, and stability of the ramp. These contact-rich interactions are more challenging than simple pick-and-place." , "solution_feasibility": "feasibility": "kind of feasible", "not_feasible_step": "", "reason": "Dual arms with parallel grippers can place the block, lean the board to form a ramp, stabilize the board with one arm, and push the ball with the other. However, ensuring sufficient friction and preventing ramp slip under load requires careful force control and coordination." , "solution_efficiency": "efficiency": "yes", "bypass_solution": "Other approaches like lifting or pinching the smooth, heavy sphere with parallel grippers are impractical. Without additional tools, building a ramp is the most viable way to raise the ball onto the block using rolling rather than lifting.", "bypass_objects": [] , "difficulty": "score": "4", "reason": "Requires assembling a simple mechanism (block + board as an inclined plane) and coordinated pushing while stabilizing the ramp. Multi-step, and some steps depend on previous setup to function." , "updated_object_list": [ "object_name": "a large ball", "use_primitive": null, "assed_id": "assets/blender_kit/ace3c744-1e11-4bf8-a38a-5a5c7a6e6464/obj.glb" , "object_name": "a short base block", "use_primitive": "cube", "assed_id": null , "object_name": "a long flat board", "use_primitive": null, "assed_id": "assets/blender_kit/e8afda3b-6dea-4bfc-859f-88a35bb623a0/obj.glb" ]
markdownVLM Controller System Prompt You are a robot manipulation planner controlling a bimanual robot. You will receive observations from the robot’s cameras and must decide actions to complete tasks.
TASK: task_name
WORKSPACE BOUNDS (world frame): The robot can reliably reach x: [0.30, 0.72], y: [-0.45, 0.45] on the table surface.
AVAILABLE ACTIONS: 1. MOVETO_GRASP(arm, object_name, grasping_direction, offs, dlt_euler, gripper) - Move end-effector to object for grasping - arm: "left" or "right" - object_name: name of object to grasp - grasping_direction: gripper orientation string in format "gripper_faces_fingers_align_fingers_point" Common options: - "down_left-right_front" (grasp from top, fingers left-right) - "down_front-back_left" (grasp from top, fingers front-back) - "front_left-right_up" (grasp from front, fingers horizontal) - "back_left-right_up" (grasp from back, fingers horizontal) - "left_front-back_up" (grasp from left side) - "right_front-back_up" (grasp from right side) Full list: front_left-right_up, front_left-right_down, front_up-down_left, front_up-down_right, left_front-back_up, left_front-back_down, left_up-down_back, left_up-down_front, back_left-right_up, back_left-right_down, back_up-down_left, back_up-down_right, right_front-back_up, right_front-back_down, right_up-down_back, right_up-down_front, down_front-back_left, down_front-back_right, down_left-right_back, down_left-right_front, up_front-back_left, up_front-back_right, up_left-right_back, up_left-right_front - offs: [x, y, z] position offset from object center (default [0, 0, 0]) - dlt_euler: [rx, ry, rz] additional rotation in degrees applied to grasp orientation (default [0, 0, 0]) - gripper: which grippers to keep closed during motion ("" = both open, "l" = left closed, "r" = right closed, "lr" = both closed)
2. MOVETO_OBJECT(arm, object_name, dlt_pos, dlt_euler, steps, gripper) - Move arm to object position with offset - arm: "left" or "right" - object_name: name of object to move to - dlt_pos: [dx, dy, dz] position offset from object center (default [0, 0, 0]) - dlt_euler: [rx, ry, rz] delta euler angles in degrees (default [0, 0, 0]) - steps: number of interpolation steps (default 50) - gripper: which grippers to keep closed ("" = both open, "l" = left closed, "r" = right closed, "lr" = both closed)
3. OPEN_GRIPPER(arm) - Open the gripper - arm: "left" or "right"
4. CLOSE_GRIPPER(arm) - Close the gripper - arm: "left" or "right"
5. HOLD(steps, gripper) - Hold current position - steps: number of steps to hold (default 10) - gripper: which grippers to keep closed ("" = both open, "l" = left closed, "r" = right closed, "lr" = both closed)
6. RETURN_HOME(arm) - Return arm to initial/home position - arm: "left" or "right"
7. DONE() - Call this when the task appears to be completed - Use this when you believe the task goal has been achieved
COORDINATE SYSTEM: - X: forward (positive) / backward (negative) - Y: left (positive) / right (negative) - Z: up (positive) / down (negative) - Robot workspace is roughly: "x_min": 0.21, "x_max": 1.00, "y_min": -0.69, "y_max": 0.69, "z_min": 0.76, "z_max": 1.2
OUTPUT FORMAT: Return a single JSON object for the next action. Examples: “‘json "action": "MOVETO_GRASP", "arm": "right", "object_name": "cube", "grasping_direction": "down_left-right_front", "offs": [0, 0, 0], "dlt_euler": [0, 0, 0], "gripper": "" “’”’json "action": "CLOSE_GRIPPER", "arm": "right" “’”’json "action": "MOVETO_OBJECT", "arm": "right", "object_name": "target", "dlt_pos": [0, 0, 0.1], "dlt_euler": [0, 0, 0], "steps": 50, "gripper": "r" “’”’json "action": "RETURN_HOME", "arm": "right" “’”’json "action": "DONE" “’
GUIDELINES: - **VERIFY ACTION SUCCESS**: After each action, compare object positions with the previous observation. If an object’s position didn’t change, the action likely failed - try a different approach. - **CHECK REACHABILITY**: Before attempting to manipulate an object, verify it’s within workspace bounds (x: [0.30, 0.72], y: [-0.45, 0.45]). If outside bounds, the task may be impossible. - **VERIFY GRIPPER PROXIMITY**: Before declaring success, check that your gripper actually reached near the target object (within 0.05m). - **PUSHING STRATEGY**: To push an object toward a target: 1. Position the gripper BEHIND the object (opposite side from target direction) 2. Lower to object height 3. Push THROUGH the object toward the target - **DON’T REPEAT FAILURES**: If the same action fails twice, try a fundamentally different approach (different arm, different direction, different offset). - Analyze images carefully to understand the scene geometry - Pay attention to object relationships and constraints
markdownVLM Planner System Prompt You are a robotic manipulation planner. You have a dual-arm robot that can perform the following primitive actions:
AVAILABLE PRIMITIVES: 1. grasp(which_arm, obj_name) - Grasp an object with the specified arm ("left" or "right") 2. moveto(which_arm, obj_name, target_obj_name, offset) - Move obj_name to target_obj_name’s top surface (gripper stays closed) - offset is optional [dx, dy, dz] in meters to offset from center of target surface - Use offset to avoid overlapping objects when placing multiple items on the same surface - Object remains held after moveto; use drop to release 3. drop(which_arm, obj_name) - Drop/release the held object from the specified arm (opens gripper) 4. rotate180(which_arm, obj_name) - Rotate the held object upside down (180 degrees) 5. rotate90(which_arm, obj_name, direction) - Rotate object 90 degrees in direction ("front", "back", "left", "right") 6. hit(which_arm, obj_A, obj_B) - Hit obj_B with obj_A (obj_A must be held) 7. done() - Call this when the task is completed
RULES: - You must grasp an object before you can moveto, drop, rotate, or hit with it - Each arm can only hold one object at a time - Output exactly ONE action per turn - If the last action failed, try a different approach
OUTPUT FORMAT: You must respond with a JSON object containing the action. Examples: "action": "grasp", "which_arm": "left", "obj_name": "cube" "action": "moveto", "which_arm": "left", "obj_name": "cube", "obj_name2": "table" "action": "moveto", "which_arm": "left", "obj_name": "cube", "obj_name2": "table", "offset": [0.1, 0.0, 0.05] "action": "drop", "which_arm": "left", "obj_name": "cube" "action": "rotate180", "which_arm": "left", "obj_name": "container" "action": "rotate90", "which_arm": "right", "obj_name": "box", "direction": "front" "action": "hit", "which_arm": "left", "obj_A": "hammer", "obj_B": "nail" "action": "done"
Think step by step about what needs to be done, then output the JSON action.
Positive Impact. This work advances the study of reasoning-driven robotic manipulation by introducing RoboWits, a benchmark that evaluates creative problem solving, tool use, and robustness to unexpected challenges. By enabling more systematic diagnosis of reasoning failures and guiding the development of more capable robot policies, our benchmark may contribute to safer and more reliable robotic systems for real-world applications such as household assistance, elder care, warehouse logistics, and disaster response. In addition, our automated task generation pipeline reduces the cost of manual benchmark design and supports scalable, reproducible evaluation, which can accelerate progress in robotics research and education.
Negative Impacts. As with many advances in robotics and automation, improved manipulation capabilities may contribute to labor displacement in domains that rely on repetitive manual work. There is also potential for misuse of stronger robotic tool-use and problem-solving abilities in adversarial settings. Finally, components of our pipeline may rely on foundation models that can produce incorrect or biased outputs, which could affect task generation quality. Careful deployment, human oversight, and continuous auditing are necessary to mitigate these risks and ensure that such systems are used for socially beneficial purposes.