User Guide¶
This guide covers the core concepts and workflows for using Waremax effectively.
Overview¶
The User Guide is organized into the following sections:
| Section | Description |
|---|---|
| Running Simulations | Detailed guide to executing simulations |
| Scenario Files | Understanding scenario configuration structure |
| Map Configuration | Creating warehouse topology maps |
| Storage Configuration | Setting up racks and inventory |
| Working with Presets | Using and customizing built-in presets |
| Export Formats | Understanding output files and formats |
Core Workflow¶
A typical Waremax workflow follows these steps:
graph LR
A[Define Scenario] --> B[Validate]
B --> C[Run Simulation]
C --> D[Analyze Results]
D --> E{Acceptable?}
E -->|No| A
E -->|Yes| F[Document & Report]
1. Define Scenario¶
Create a YAML configuration file describing your warehouse:
- Map topology (nodes, edges)
- Robot fleet configuration
- Station definitions
- Order generation parameters
- Dispatching policies
2. Validate¶
Check your scenario for errors before running:
3. Run Simulation¶
Execute the simulation:
4. Analyze Results¶
Review metrics, identify bottlenecks, and understand performance:
5. Iterate¶
Adjust parameters and re-run until you achieve desired results.
Key Concepts¶
Scenarios¶
A scenario is the complete configuration for a simulation, including:
- Simulation parameters (duration, warmup, seed)
- Physical layout (map, storage)
- Resources (robots, stations)
- Workload (order patterns)
- Behavior (policies)
Presets¶
Presets are predefined scenario configurations for common use cases:
minimal- Quick unit testsstandard- General testingstress_test- High-load scenariosbattery_test- Battery/charging focusedmaintenance_test- Reliability testing
Policies¶
Policies control how the simulation makes decisions:
- Task Allocation - Which robot gets which task
- Station Assignment - Which station to use
- Batching - How to group items
- Priority - How to prioritize different task types
File Organization¶
Recommended project structure for simulation projects:
my_project/
├── scenarios/
│ ├── baseline.yaml
│ ├── variant_a.yaml
│ └── variant_b.yaml
├── maps/
│ ├── warehouse_small.json
│ └── warehouse_large.json
├── storage/
│ └── inventory.yaml
├── results/
│ ├── baseline/
│ ├── variant_a/
│ └── variant_b/
└── analysis/
└── comparison_report.md
Common Tasks¶
Compare Two Configurations¶
Run Parameter Sweep¶
Statistical A/B Testing¶
Performance Benchmarking¶
Best Practices¶
Reproducibility¶
- Always specify a
seedin your scenario - Document any manual changes
- Version control your scenario files
Testing Changes¶
- Start with a baseline configuration
- Change one parameter at a time
- Run multiple replications (different seeds)
- Use statistical comparison tools
Performance¶
- Use release builds for actual simulations
- Start with shorter durations for iteration
- Increase duration for final results
- Include adequate warmup period
Documentation¶
- Add comments to scenario files
- Document the purpose of each configuration
- Record results and conclusions
Next Steps¶
- Running Simulations - Deep dive into run options
- Scenario Files - Understand configuration structure
- Configuration Reference - Complete parameter reference