Python framework for state-space modeling and algorithm development
Project description
A peer-reviewed open-source framework for state-space modeling and algorithm development
Tsipor Dynamics
Algorithms Engineering and Development
Tsipor (bird) Dynamics (c4dynamics) is the Python framework for state-space modeling and algorithm development.
About c4dynamics
c4dynamics is designed to
simplify the development of algorithms for dynamic systems,
using state space representations.
It offers engineers and researchers a systematic approach to model,
simulate, and control systems in fields like
robotics, aerospace, and navigation.
The framework introduces state objects, which are foundational
data structures that encapsulate state vectors and provide
the tools for managing data, simulating system behavior,
and analyzing results.
With integrated modules for sensors, detectors, and filters, c4dynamics accelerates algorithm development while maintaining flexibility and scalability.
Why c4dynamics?
✅ State objects for easy modeling
✅ Built-in functions for Kalman filters
✅ Integrated sensors and object detection models
✅ Out-of-the-box environments for reinforcement learning
✅ Seamless integration with OpenCV & Open3D
✅ Optimization for Monte Carlo simulations
Documentation
📘 Full documentation:
https://c4dynamics.github.io/c4dynamics/
- Installation and setup guides
- Core concepts and state-space modeling philosophy
- API reference and examples
- Tutorials for filtering, sensing, and simulation workflows
Requirements
- 3.8 <= Python < 3.13
- Required packages are listed in requirements.txt
Installation
For detailed instructions on installing c4dynamics, including setup for virtual environments, Python version requirements, and troubleshooting, refer to the c4dynamics setup guide.
>>> pip install c4dynamics
To run the latest GitHub version, download the repo and install required packages:
>>> pip install -r requirements.txt
Quickstart
Import c4dynamics:
>>> import c4dynamics as c4d
Define state space object of two variables in the state space (y, vy) with initial conditions (change the state with your variables):
>>> s = c4d.state(y = 1, vy = 0.5)
Store with time stamp t = 0:
>>> s.store(t = 0)
Multiply the state vector by a matrix and store:
>>> F = [[1, 1],
[0, 1]]
>>> s.X += F @ s.X
>>> s.store(t = 1)
Print the state variables, the state vector, and the stored data:
>>> print(s)
[ y vy ]
>>> s.X
[2.5 1]
>>> s.data('y')
([0, 1], [1, 2.5])
Support
If you encounter problems, have questions, or would like to suggest improvements, please open an Issue in this repository.
New in Block 2
Enhancements and modules in latest release:
- Complete state space objects mechanism
- Seeker and radar measurements
- Kalman filter and Extended Kalman filter
- YOLOv3 object detection API
- Datasets fetching to run examples
- Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file c4dynamics-2.3.4.tar.gz.
File metadata
- Download URL: c4dynamics-2.3.4.tar.gz
- Upload date:
- Size: 120.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f4171fdfce325d9e1d8e0424f0fde7aa13cf67f7bfdd818580a82b9c87b56f8
|
|
| MD5 |
1279c64388e19371c1f776a403adfaa9
|
|
| BLAKE2b-256 |
ed4a4ab693f993a00c6a252c18817f6aa887378dfafd77fb355e7907d26c540f
|
File details
Details for the file c4dynamics-2.3.4-py3-none-any.whl.
File metadata
- Download URL: c4dynamics-2.3.4-py3-none-any.whl
- Upload date:
- Size: 123.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d98720996293071789170f41906550e7317fc201066b622a1c53b0154da18b90
|
|
| MD5 |
0b74b5e95f8bb7d68e5a3909b851cb69
|
|
| BLAKE2b-256 |
b70cff72b12fad9c86d76964ee82ea326ce07b32edf906b761101d3880f3e2a4
|