Overview
Veydra’s simulation engine provides powerful, real-time model execution capabilities built on modern web technologies. Run complex system dynamics models directly in your browser with instant feedback and interactive parameter adjustment.Core Technology
Pyodide Integration
Veydra uses Pyodide to run Python models directly in the browser:- WebAssembly Performance: Near-native execution speed
- Full Python Support: Complete scientific Python stack
- Browser-Based: No server dependencies for model execution
- Real-time Processing: Instant parameter updates
Simulation Features
Real-time Execution
Instant model runs with parameter changes
Multi-Stock Support
Handle complex models with multiple stocks
Scenario Comparison
Baseline vs current scenario analysis
Data Export
Export results in multiple formats
Execution Workflow
Model Processing
1
Model Loading
- Load Python model code from project
- Initialize Pyodide environment
- Load model-specific configuration
- Prepare simulation namespace
2
Parameter Setup
- Apply current parameter values
- Configure simulation time range
- Set baseline vs scenario mode
- Initialize data structures
3
Execution
- Run Python model function
- Capture stock and flow values
- Process time series data
- Generate visualization data
4
Visualization
- Update chart displays
- Refresh stock-flow diagram
- Update data tables
- Enable export options
Parameter Management
Active Parameters
Parameters marked as “Active” enable real-time simulation updates:Parameter Types
Numeric Parameters
Numeric Parameters
Support for integers, floats, and scientific notation with configurable ranges and step sizes
Boolean Parameters
Boolean Parameters
Toggle switches for on/off model features and conditional logic
String Parameters
String Parameters
Text inputs for model configuration and scenario naming
Simulation Modes
Baseline Mode
Run models with default parameters to establish baseline behavior:- Default Values: Uses original model parameters
- Reference Point: Basis for scenario comparison
- Reproducible: Consistent results for comparison
- Benchmarking: Standard for model validation
Scenario Mode
Test different parameter combinations to explore “what-if” scenarios:- Interactive Parameters: Real-time slider adjustments
- Multiple Scenarios: Save and compare different configurations
- Sensitivity Analysis: Understand parameter impact
- Optimization: Find optimal parameter combinations
Comparison Mode
Side-by-side analysis of baseline vs scenario results:Visual Comparison
Overlay baseline and scenario charts
Difference Analysis
Calculate and display differences
Percentage Changes
Show relative changes from baseline
Statistical Summary
Key metrics and summary statistics
Data Processing
Time Series Handling
Veydra automatically processes simulation results into time series data:- Automatic Indexing: Time-based data organization
- Interpolation: Smooth data visualization
- Aggregation: Multiple time scale support
- Filtering: Data cleaning and validation
Output Configuration
Model outputs are configured viaoutputs.json
files:
Performance Optimization
Caching Strategy
- Model Caching: Store compiled models for faster execution
- Parameter Caching: Remember recent parameter sets
- Result Caching: Cache simulation outputs
- File Caching: Local storage for model files
Memory Management
- Efficient Data Structures: Optimized for large datasets
- Garbage Collection: Automatic memory cleanup
- Incremental Updates: Only process changed data
- Resource Monitoring: Track memory usage
Large models with many parameters may require longer initial load times but will run smoothly once cached
Error Handling
Graceful Failures
The simulation engine includes robust error handling:Syntax Errors
Syntax Errors
Python syntax errors in model code are caught and displayed with helpful debugging information
Runtime Errors
Runtime Errors
Execution errors during simulation show specific error messages and line numbers
Data Errors
Data Errors
Invalid parameter values or data format issues are automatically detected and reported
Recovery Mechanisms
Recovery Mechanisms
Automatic fallback to last known good state when errors occur
Advanced Features
Custom Model Functions
Write sophisticated Python models with full library support:Multi-Stock Analysis
Handle models with multiple interacting stocks:- Cross-stock Dependencies: Model interactions between stocks
- Synchronized Updates: Consistent time-step processing
- Relationship Mapping: Track dependencies and influences
- Aggregate Views: Summary statistics across all stocks
Debugging Tools
Execution Monitoring
- Real-time Logs: View Python execution output
- Performance Metrics: Track execution time and memory
- Parameter Tracking: Monitor parameter changes
- Error Reporting: Detailed error messages and stack traces
Model Validation
- Syntax Checking: Pre-execution code validation
- Parameter Validation: Check ranges and types
- Output Verification: Ensure proper data formats
- Consistency Checks: Verify model logic
Use the browser’s developer console to see detailed execution logs and debug model issues