Changelog
All notable changes to SimCraft will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2024-12-28
Added
Core Simulation Engine
Simulationclass with event scheduling and hierarchical compositionSimulationConfigfor execution parametersMultiple execution modes:
run(until=...),run(for_duration=...),step()Warmup period support with automatic statistics reset
Entity Framework
Entitybase class with state trackingTimedEntitywith automatic timing (entry, service start, exit)EntityFactoryfor entity creationEntityPoolfor object recycling and performance optimization
Event Management
Eventwith priority supportConditionalEventfor conditional executionEventListwith O(log n) operationsEvent tagging and bulk cancellation
Resource Management
Serverfor multi-server processing stationsQueuewith FIFO ordering and statisticsPriorityQueuewith heap-based implementationResourcewith acquire/release semanticsPreemptiveResourcefor preemption supportResourcePoolfor distinguishable resourcesRich callback system (on_arrival, on_service_start, on_departure)
Statistics Collection
Counterwith rate calculationWindowedCounterwith sliding window statisticsTallyusing Welford’s algorithm for online computationTimeSeriesfor time-weighted statisticsMonitorfor unified data collectionSimulationRecorderfor execution history
Activity Framework
Activityfor time-based operations with capacityParallelActivityfor batch processingStateandTransitionfor state machinesStateMachinefor complex entity lifecycles
Random Number Generation
RandomGeneratorwith 20+ distributionsRandomStreamwith checkpointingStreamManagerfor independent streamsCommonRandomNumbersfor variance reduction
Optimization Integration
OptimizationInterfacefor simulation-optimizationSimulationExperimentfor parameter evaluationRLInterfacefor reinforcement learningRLEnvironmentfor Gym compatibilityReplayBufferfor experience replayMulti-agent RL support
Utilities
ConfigLoaderfor YAML/JSON configurationSimulationLoggerfor structured loggingVisualization helpers for matplotlib
Example Models
M/M/1 queue with theoretical validation
Manufacturing simulation (WSC 2023 style)
Port terminal simulation (WSC 2025 style)
Documentation
Complete API documentation with docstrings
Quick start guide
Tutorial examples
ReadTheDocs integration