Skip to content

vtavakkoli/interactive-robot-kinematics

Repository files navigation

Interactive Robot Kinematics

An educational and research-oriented browser-based 3D simulator for robot arm kinematics. This project runs entirely in the browser and is designed to help learners and researchers experiment with Denavit-Hartenberg (DH) modeling, forward kinematics, and inverse kinematics in real time.

Interactive Robot Kinematics Demo

Live Demo

🚀 This project is already live on GitHub Pages:


Overview

Interactive Robot Kinematics is a single-file web simulator (index.html) built for clarity, accessibility, and hands-on learning. The app allows users to create and modify serial robot arms directly in the browser while observing geometric and kinematic effects instantly in a 3D scene.

The repository intentionally keeps a simple static structure to preserve GitHub Pages compatibility and educational transparency.

Features

  • Standard and Modified DH conventions
    • Switch between Standard DH and Modified DH (Craig) conventions.
  • Revolute and prismatic joints
    • Add/remove links dynamically with support for both joint types.
  • Forward kinematics
    • Manipulate joint variables (q) and observe resulting end-effector pose.
  • Inverse kinematics
    • Move toward a Cartesian target using an iterative Jacobian-transpose-based approach.
  • Editable DH table
    • Click-to-edit DH parameters (α, a, d, θ) directly in the interface.
  • Real-time 3D visualization
    • Rendered with Three.js with coordinate frames, links, joints, and end-effector updates.

Tech Stack

  • HTML, CSS, JavaScript
  • Three.js
  • lil-gui

Usage

In the live app

  1. Add revolute/prismatic joints from Settings & Actions.
  2. Tune joint variables in Joint Controls (q).
  3. Edit geometric DH values from the table on the left.
  4. Select DH convention (Standard or Modified).
  5. Set IK target coordinates and click Go to Target.

Run locally (no build required)

Because this is a static single-file app, local usage is simple:

git clone https://github.com/vtavakkoli/interactive-robot-kinematics.git
cd interactive-robot-kinematics

Open index.html directly in your browser, or use a lightweight static server if preferred.

Examples:

# Python 3
python -m http.server 8000
# Then open http://localhost:8000

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for guidelines.

Roadmap

Planned future improvements include:

  • Joint limits
  • Singularity awareness and diagnostics
  • Improved inverse kinematics solver
  • URDF import/export
  • Trajectory planning
  • Export/import of robot configurations

Author

Written by Vahid Tavakkoli (2026).

License

This project is licensed under the MIT License.

Copyright (c) 2026 Vahid Tavakkoli

See LICENSE for full text.

Releases

No releases published

Packages

 
 
 

Contributors

Languages