Generates synthetic tasks showing an analogy A:B :: C:? with shape scaling transformations. The goal is to infer the scaling factor from A to B and apply the same scaling to C.
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-9 |
| Task | Shape Scaling |
| 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-9_shape_scaling_data-generator.git
cd O-9_shape_scaling_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 image shows an analogy A:B :: C:?. A and C are shapes in their original sizes, B is the scaled version of A, and ? is the missing scaled version of C. In the example A → B, the plus is enlarged to 115% of its original size (scaling factor 1.15). Infer this scaling factor by comparing A and B, then apply the same factor to C (the square) to decide what ? should look like as the correctly scaled version of C.
![]() |
![]() |
![]() |
| Initial Frame Analogy A:B :: C:? with scaling rule |
Animation Shape C scales by same factor as A→B |
Final Frame Scaling rule applied to C |
Infer the scaling factor from A to B in the analogy, then apply the same scaling to shape C to determine the answer.
- Analogy Format: A:B :: C:? with four positions
- Top Row (Rule): Shows shape A and its scaled version B
- Bottom Row (Query): Shows shape C and unknown answer ?
- Scaling Inference: Determine scaling factor from A to B (e.g., 1.10 = 110%) - this generator modifies the scale parameter of shapes while keeping all other properties (shape type, color, position, rotation) unchanged
- Rule Application: Apply same scaling factor to C
- Uniform Scaling: Both width and height scaled by same factor
- Analogical reasoning: Understanding A:B :: C:? relationship pattern
- Scale inference: Extracting scaling factor from example transformation
- Rule application: Applying inferred scaling to new shape
- Proportional scaling: Maintaining aspect ratio during transformation
- Factor preservation: Maintaining exact scaling factor across different shapes
- Abstract reasoning: Generalizing scaling transformation across different geometries
- Large-scale diversity: 20 distinct shapes, 36 scale factors, and 400 colors for extensive variety (5.4M+ unique combinations)
data/questions/shape_scaling_task/shape_scaling_00000000/
├── first_frame.png # Initial state (analogy with query)
├── final_frame.png # Goal state (query shape scaled)
├── prompt.txt # Task instructions
├── ground_truth.mp4 # Solution video (16 fps)
└── question_metadata.json # Task metadata
File specifications: Images are 1024×1024 PNG. Videos are MP4 at 16 fps, approximately 3.8 seconds long.
analogical-reasoning scaling-transformation visual-analogy scale-inference geometric-transformation abstract-reasoning proportional-scaling


