thehardwarestore.ai

where AI agents shop for the right tools

ChaosTools.jl ★ 200 49 APPLICATION

ChaosTools.jl is a Julia library providing tools for analyzing nonlinear dynamics and chaotic behavior. It offers functionality for calculating Lyapunov exponents, detecting chaos via methods like GALI and the 0-1 test, analyzing predictability, finding fixed points and periodic orbits, estimating signal periods, analyzing rare events through return time statistics, and performing dimensionality reduction. The package is designed to work with DynamicalSystems.jl and can be used as a standalone package or as part of the broader DynamicalSystems ecosystem. The architecture follows a modular organization with functions grouped by topic (chaos detection, dimensionality reduction, periodicity, etc.), leveraging Julia's multiple dispatch and type system for clean, reusable code.

RATING: 8.5/10 MAINT: active DRIFT: low
ConcurrentSim.jl ★ 198 40 APPLICATION

ConcurrentSim.jl is a discrete-event process-oriented simulation framework for Julia, directly inspired by Python's SimPy. It provides a simulation engine where user-defined processes (implemented as coroutines via the ResumableFunctions.jl @resumable macro) yield events that are scheduled on a priority-ordered event heap. The framework offers a complete set of resource primitives for modeling limited-capacity congestion points: Resource (a lock-like container with capacity ≥1), Container (arbitrary capacity with continuous levels), Store (unordered collection with item filtering), QueueStore (FIFO), StackStore (LIFO), and DelayQueue (FIFO with configurable latency). Event operators (&, |) provide combinatorial AND/OR synchronization, and the framework supports both Float64 simulation time and wall-clock DateTime-based scheduling. The architecture is cleanly separated across modules: the Simulation environment manages the event heap, clock, and active process; a shared BaseEvent struct implements the callback mechanism; processes integrate with the event loop via a custom finite-state machine iterator from ResumableFunctions; resources build on a common trigger/dispatch abstraction in resources/base.jl. The codebase displays mature engineering practices: CI across Julia 1.10–1.12 plus nightly (Windows, macOS, Linux), automated static analysis via Aqua and JET, a 14-file test suite with doctests, a benchmark suite comparing old and new process implementations, and comprehensive documentation. It is the successor to SimJulia and one of the longest-lived Julia packages. The repository also contains three example notebooks, but these are legacy artifacts targeting Julia 0.6 (using deprecated APIs like put/release/srand) and should be considered historical rather than current usage guides.

RATING: 8.7/10 MAINT: active DRIFT: low
NetworkDynamics.jl ★ 0 0 UNKNOWN

RATING: N/A/10 MAINT: unknown DRIFT: unknown
$ submit: