Skip to content

Releases: devwithchai/OpenKinematics

OpenKinematics v0.2.0 – Visualization Framework

Choose a tag to compare

@devwithchai devwithchai released this 01 Aug 13:36

Overview

OpenKinematics v0.2.0 introduces the project's first complete visualization framework.

This release adds visualization capabilities for robot configurations, workspace sampling, trajectory plotting, and animation while keeping the visualization layer fully separated from the core kinematics algorithms.

The public API has also been extended so these capabilities are directly available through the Robot interface.

This release focuses on building a solid and well-tested visualization foundation that future versions can improve without changing the user-facing API.

✨ Highlights
Robot Visualization

Visualize robot configurations using a unified API.

robot.plot(joint_values)

Supported robots:

Planar Robot
SCARA Robot
Articulated Robot
Workspace Visualization

Explore the reachable workspace of a robot through randomized sampling.

robot.plot_workspace(
    num_samples=8000,
    seed=42
)

Features:

2D workspace visualization
3D workspace visualization
Reproducible sampling
Customizable sample count
Trajectory Visualization

Display the path traced by the end effector while visualizing a robot configuration.

plot_2d(
    robot,
    joint_values,
    trajectory=trajectory
)

Supported in:

2D visualization
3D visualization
Animation Support

Animate a robot following a sequence of joint configurations.

fig, ax, anim = robot.animate(trajectory)

Features:

Unified API
Configurable playback interval
Existing rendering reuse
Matplotlib FuncAnimation support
Centralized Visualization Styling

Introduced a dedicated styling module.

open_kinematics.visualization.styles

Provides centralized control over:

Colors
Marker styles
Figure sizes
Line widths
Grid settings
Camera presets
Animation interval
DPI settings
API Improvements

New high-level methods have been added to the Robot API.

robot.plot()

robot.plot_workspace()

robot.animate()

These methods provide a consistent interface regardless of robot type.

Testing

Visualization functionality is fully covered by automated tests.

Test Summary
156 automated tests
All tests passing

Coverage includes:

Visualization dispatch
Workspace generation
Trajectory plotting
Animation creation
Existing axes reuse
Legend correctness
Camera presets
Figure sizing
Error handling
API integration
Project Structure

New modules introduced in this release:

open_kinematics/
└── visualization/
    ├── animate.py
    ├── plot_2d.py
    ├── plot_3d.py
    ├── workspace.py
    └── styles.py

Design Principles

The visualization subsystem was developed around several architectural goals:

Separation of visualization from kinematics
Consistent public API
Reusable rendering functions
Centralized styling configuration
Comprehensive automated testing
Future renderer independence
Known Limitations

Current visualization is implemented using Matplotlib.

While fully functional for education, debugging, and algorithm verification, the current rendering system is intentionally lightweight and does not provide the level of interactive 3D visualization expected from modern robotics software.

This release establishes the visualization API rather than the final rendering engine.

What's Next

Development of v0.3.0 will focus on a next-generation rendering engine.

Planned areas of exploration include:

Modern 3D rendering backend
Interactive camera controls
Robot meshes and realistic links
Joint geometry visualization
Improved animation pipeline
Professional-quality robotics visualization

The existing public API is intended to remain stable while the underlying renderer evolves.

Installation

pip install open-kinematics

Or install the latest development version:

git clone https://github.com/devwithchai/OpenKinematics.git

Thank You

Thank you to everyone following the development of OpenKinematics.

Feedback, feature requests, bug reports, and contributions are always welcome.

OpenKinematics v0.1.0 – Initial Public Release

Choose a tag to compare

@devwithchai devwithchai released this 24 Jul 15:44

OpenKinematics v0.1.0

This is the initial public release of OpenKinematics, an educational, open-source Python library for learning and experimenting with robot kinematics from first principles.

The project focuses on clean software architecture, readable implementations, and transparent robotics algorithms rather than treating kinematics as a black box.


Highlights

Robot Models

  • Planar (2R)
  • SCARA
  • Articulated Robot

Kinematics

  • Denavit–Hartenberg (DH) based Forward Kinematics
  • Geometric Jacobian
  • Manipulability Measure

Inverse Kinematics

  • Analytical IK for Planar Robot
  • Analytical IK for SCARA Robot
  • Numerical (Pseudoinverse) IK for Articulated Robot

Visualization

  • 2D Robot Visualization
  • 3D Robot Visualization

Software Engineering

  • Public Robot API
  • Comprehensive Unit Tests
  • GitHub Actions CI
  • MIT License
  • Sphinx-style API Documentation
  • Contributor Guidelines

Installation

git clone https://github.com/devwithchai/OpenKinematics.git
cd OpenKinematics
pip install -e ".[dev]"