Generates synthetic tasks showing an analogy A:B :: C:? with shape color transformations. The goal is to apply the same color change rule from the top row to the bottom row shape.
Each sample pairs a task (first frame + prompt describing what needs to happen) with its ground truth solution (final frame showing the result + video demonstrating how to achieve it). This structure enables both model evaluation and training.
| Property | Value |
|---|---|
| Task ID | O-7 |
| Task | Shape Color Change |
| Category | Abstraction |
| Resolution | 1024×1024 px |
| FPS | 16 fps |
| Duration | ~3.8 seconds |
| Output | PNG images + MP4 video |
# Clone the repository
git clone https://github.com/VBVR-DataFactory/O-7_shape_color_change_data-generator.git
cd O-7_shape_color_change_data-generator
# Install dependencies
pip install -r requirements.txt# Generate 100 samples
python examples/generate.py --num-samples 100
# Generate with specific seed
python examples/generate.py --num-samples 100 --seed 42
# Generate without videos
python examples/generate.py --num-samples 100 --no-videos
# Custom output directory
python examples/generate.py --num-samples 100 --output data/my_output| Argument | Type | Description | Default |
|---|---|---|---|
--num-samples |
int | Number of samples to generate | 100 |
--seed |
int | Random seed for reproducibility | Random |
--output |
str | Output directory | data/questions |
--no-videos |
flag | Skip video generation | False |
The scene shows an analogy A:B :: C:? with two rows of shapes and arrows. On the top row, a unknown rectangle becomes a unknown rectangle; treat this as the color rule from unknown to unknown. On the bottom row, the triangle starts with the same source color. Apply the same color change so the answer shape on the right is a unknown triangle, keeping its shape, size, and position the same while only the color changes.
![]() |
![]() |
![]() |
| Initial Frame Analogy with top row rule and bottom query |
Animation Bottom shape changes color to match rule |
Final Frame Color rule applied, shape unchanged |
Apply the color transformation rule demonstrated in the top row (A:B) to the bottom row shape (C) to determine the answer (?).
- Analogy Format: A:B :: C:? with two rows and arrows
- Top Row (Rule): Shows shape transformation with color change (e.g., orange → magenta)
- Bottom Row (Query): Shows starting shape with same source color
- Color Rule: Extract color change from top row and apply to bottom
- Shape Preservation: Bottom shape's geometry, size, and position remain unchanged
- Only Color Changes: Apply only the color transformation, nothing else - this generator modifies the color property of shapes while keeping all other properties (shape type, size, position, rotation) unchanged
- Analogical reasoning: Understanding A:B :: C:? relationship pattern
- Color rule extraction: Identifying the color transformation from example
- Rule application: Applying extracted rule to new shape
- Shape invariance: Maintaining all properties except color
- Visual analogy: Translating visual pattern to new context
- Abstract reasoning: Generalizing color change across different shapes
- Large-scale diversity: 20 distinct shapes and 400 colors for extensive variety (60M+ unique combinations)
data/questions/shape_color_change_task/shape_color_change_00000000/
├── first_frame.png # Initial state (analogy with query)
├── final_frame.png # Goal state (query shape recolored)
├── prompt.txt # Task instructions
├── ground_truth.mp4 # Solution video (16 fps)
└── question_metadata.json # Task metadata (objects, colors, etc.)
File specifications: Images are 1024×1024 PNG. Videos are MP4 at 16 fps, approximately 3.8 seconds long.
analogical-reasoning color-transformation visual-analogy rule-extraction pattern-matching abstract-reasoning color-change


