Generates synthetic tasks where a continuous wave is displayed. The goal is to find all peaks (local maxima) and mark each one with a red circle and dot, from left to right, step by step.
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 | G-202 |
| Task | Mark Wave Peaks |
| Category | Perception |
| Resolution | 1024×1024 px |
| FPS | 16 fps |
| Duration | ~5 seconds |
| Output | PNG images + MP4 video |
# Clone the repository
git clone https://github.com/VBVR-DataFactory/G-202_mark_wave_peaks_data-generator.git
cd G-202_mark_wave_peaks_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 a continuous wave on a white background. Find all peaks (local maxima: each point where the wave value is greater than both immediate neighbors). Circle each peak with a red hollow outline and a solid red dot at its center, from left to right one by one, and show the solution step by step.
![]() |
![]() |
![]() |
| Initial Frame Continuous wave displayed |
Animation Peaks marked sequentially left-to-right |
Final Frame All peaks marked with circles and dots |
Identify all local maxima (peaks) in a continuous wave pattern and mark each one sequentially from left to right.
- Wave Complexity: 80-180 points defining the continuous curve
- Amplitude Range: 120-320 pixels vertical variation
- Frequency Range: 0.01-0.04 controlling wave density
- Peak Count: 3-10 local maxima per wave
- Marking Method: Red hollow circle (15px radius) + solid red dot (4px radius) at center
- Sequential Marking: Peaks marked one by one from left to right
- Local maxima detection: Tests ability to identify points higher than both neighbors
- Sequential processing: Solution shown step-by-step in left-to-right order
- Dual marking system: Hollow circle outline plus center dot for clear identification
- Mathematical reasoning: Requires understanding of local maxima in continuous functions
- Variable complexity: Number of peaks varies, affecting task difficulty
- Step-by-step solution: Animation shows each peak being marked individually
data/questions/mark_wave_peaks_task/mark_wave_peaks_00000000/
├── first_frame.png # Initial state (unmarked wave)
├── final_frame.png # Goal state (all peaks marked)
├── 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 5 seconds long.
pattern-recognition spatial-reasoning local-maxima wave-analysis sequential-marking mathematical-reasoning


