Skip to main content
Published in the Journal of Open Source Software (JOSS)

pyOpenSci Peer Reviewed

Tsipor Dynamics

Algorithms Engineering and Development

Tsipor (bird) Dynamics (c4dynamics) is the Python framework for state-space modeling and algorithm development.

Static Badge PyPI - Version GitHub deployments GitHub Actions Workflow Status GitHub Actions Workflow Status Pepy Total Downloads

Stop starting from scratch every time you change systems

Same workflow. Different systems.

Most engineers rebuild everything. c4dynamics keeps the structure fixed.


What is c4dynamics?

c4dynamics is a Python framework for building, simulating, estimating, and controlling physical systems — without resetting your workflow every time the system changes.

It gives you one consistent way to:

  • define a system
  • simulate its evolution
  • estimate its state
  • design control

Across:

robotics · aerospace · autonomous systems · navigation



🧪 Examples

Real implementations of modeling, estimation, and control

Not isolated demos. They all follow the same structure.

Cascade PID EKF State Estimation ArduPilot Simulation
Quadcopter figure-8 tracking Quadcopter GPS/IMU/MAG sensor fusion Quadcopter figure-8 under ArduCopter control
6-DOF Simulation Extended Kalman Filter Model Predictive Control
Proportional navigation guidance Ballistic coefficient estimation Vehicle steering
YOLO3 + Kalman Filter Neural Network based Controller YOLO11 + Kalman Filter
Vehicle tracking Helicopter Learning Controller Vehicle tracking (newer detector)

The switching problem

Switching systems shouldn’t feel like starting over.

But it does:

  • new models
  • new simulation structure
  • new estimation logic
  • new control pipeline

You don’t just learn new physics.

You rebuild everything.


The workflow

Keep the workflow. Change the physics.

c4dynamics enforces a consistent structure:

define → simulate → estimate → control

So when the system changes:

your thinking doesn’t.


Core principle

Physics first. Programming second.

  • Code implements
  • Models define reality
  • Algorithms follow structure

What you get

  • state-based modeling primitives
  • simulation infrastructure
  • Kalman / Extended Kalman filters
  • sensor and detection modules
  • reinforcement learning environments
  • OpenCV / Open3D integration
  • Monte Carlo simulation support

Who this is for

  • control engineers
  • robotics engineers
  • aerospace engineers
  • autonomy developers

Especially if you’ve felt:

“I know this stuff… but I don’t use it.”


Quickstart

>>> import c4dynamics as c4d

define system

s = c4d.state(y=1, vy=0.5)

simulate

F = [[1, 1],
     [0, 1]]

s.X += F @ s.X
s.store(t=1)

Requirements


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

Documentation

📘 https://c4dynamics.github.io/c4dynamics/

  • concepts
  • API
  • examples
  • tutorials

Contributing

This is not just a library.

It’s a shared way of building systems.

  • build examples
  • improve structure
  • explore new systems

Support

If you encounter problems, have questions, or would like to suggest improvements, please open an Issue in this repository.


New system. Same workflow.


Metadata

Release files for c4dynamics 2.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for c4dynamics 2.6.0
File Size Uploaded
c4dynamics-2.6.0.tar.gz 211.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for c4dynamics 2.6.0
File Interpreter ABI Platform
c4dynamics-2.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 422.6 kB

Release files / c4dynamics-2.6.0.tar.gz

Download URL c4dynamics-2.6.0.tar.gz
Size 211.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e240a7ca9a4baa210ee5cb5d64f054e6b30517afdf8d5fa51e3a7884ca3322b0
BLAKE2b-256 checksum
How to use checksums
10100dada908bd4911d264f5dfd7a0cbcfd83c90f3e4920f520cccfec606501a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / c4dynamics-2.6.0-py3-none-any.whl

Download URL c4dynamics-2.6.0-py3-none-any.whl
Size 210.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
009cad99e37ce4cb73ea8cee68a64aba767052301c5952931c921e5e26720c4c
BLAKE2b-256 checksum
How to use checksums
40441848c64ccafb85939c9fa4241b3086a75132306ed710469b0f50c97ac70a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

This release

2.6.0 This release

2 release files

2.5.0

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.7

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

1 release file

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.0.3

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.80

2 release files

1.0.50

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page