{"id":27896438,"url":"https://github.com/onlyuser/dexvt-lite","last_synced_at":"2026-04-08T14:31:19.309Z","repository":{"id":146714566,"uuid":"69079652","full_name":"onlyuser/dexvt-lite","owner":"onlyuser","description":"3D Inverse Kinematics with Constraints and... GPU Ray Tracing!","archived":false,"fork":false,"pushed_at":"2019-05-27T17:24:51.000Z","size":637,"stargazers_count":38,"open_issues_count":1,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-30T06:45:57.810Z","etag":null,"topics":["3d-engine","3d-printer","boids","ccd","delta-robot","glsl","hexapod","inverse-kinematics","motion-planning","octree","path-planning","path-tracing","ray-tracing","robotics","stewart-platform"],"latest_commit_sha":null,"homepage":"http://onlyuser.github.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/onlyuser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-09-24T04:28:12.000Z","updated_at":"2024-06-06T08:41:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"d9374de8-13ba-47d9-9c2f-1f4217b47607","html_url":"https://github.com/onlyuser/dexvt-lite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/onlyuser/dexvt-lite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlyuser%2Fdexvt-lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlyuser%2Fdexvt-lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlyuser%2Fdexvt-lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlyuser%2Fdexvt-lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/onlyuser","download_url":"https://codeload.github.com/onlyuser/dexvt-lite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/onlyuser%2Fdexvt-lite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31559690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-engine","3d-printer","boids","ccd","delta-robot","glsl","hexapod","inverse-kinematics","motion-planning","octree","path-planning","path-tracing","ray-tracing","robotics","stewart-platform"],"created_at":"2025-05-05T17:00:41.143Z","updated_at":"2026-04-08T14:31:19.275Z","avatar_url":"https://github.com/onlyuser.png","language":"C++","readme":"[![Build Status](https://secure.travis-ci.org/onlyuser/dexvt-lite.png)](http://travis-ci.org/onlyuser/dexvt-lite)\n\n3D Inverse Kinematics with Constraints and... GPU Ray Tracing!\n==============================================================\n\nCopyright (C) 2011-2017 \u003cmailto:onlyuser@gmail.com\u003e\n\nAbout\n-----\n\ndexvt-lite is a 3D inverse kinematics and GPU ray tracing tech demonstrator.\nIt features rovolute joint constraints, prismatic joint constraints, end-effector orientation constraints, and... GPU ray tracing!\n\nSee sister project demonstrating other engine features: [dexvt-test](https://github.com/onlyuser/dexvt-test)\n\nAlgorithm\n---------\n\n**3D Inverse Kinematics**\n\nSupports rovolute joint constraints, prismatic joint constraints, and end-effector orientation constraints.\nThe way each constraint type is handled is described below:\n\n* Revolute Joint Constraints\n    * \"Non-hinge\" joints\n        1. In each joint's rotation step, rotate on a pivot that aligns the end-effector with the target.\n        2. Enforce joint constraints in euler space by capping the post-rotation orientation of the adjacent segment to be within the joint's maximal deviation from neutral orientation. Do this for each axis.\n    * \"Hinge\" joints\n        1. In each joint's rotation step, rotate on a pivot that minimizes the distance between the end-effector and the target, all the while staying within the joint's plane of free rotation. Setting non-constraint-violating goals early on avoids most problems described [here](https://stackoverflow.com/questions/21373012/best-inverse-kinematics-algorithm-with-constraints-on-joint-angles).\n        2. Enforce joint constraints perpendicular to the joint's pivot by squeezing the post-rotation orientation of the adjacent segment to be within the joint's plane of free rotation. This adds numerical stability to the pivot so it doesn't \"drift\".\n        3. Enforce joint constraints within the joint's plane of free rotation by capping the post-rotation orientation of the adjacent segment to be within the joint's maximal deviation from neutral orientation.\n\n* Prismatic Joint Constraints\n    * In each joint's translation step, slide the adjacent segment by the maximal extent it can slide within the joint's range of free translation to align the end-effector with the target.\n\n* End-effector Orientation Constraints\n    * In each joint's rotation/translation step, extend the end-effector position by the end-effector orientation offset.\n\n**GPU Ray Tracing**\n\n* Supports 4 material types:\n    * Reflective\n    * Transparent\n    * Diffuse\n    * Glowing\n\n* Supports 3 primitive types:\n    * Spheres\n    * Planes\n    * Boxes\n\nScreenshots\n-----------\n\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ik_const_thumb.gif?attredirects=0)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ik_const.gif?attredirects=0)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ray_tracer_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ray_tracer.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ray_tracer2_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ray_tracer2.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ray_tracer3_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ray_tracer3.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ray_tracer4_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ray_tracer4.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ray_tracer_old_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ray_tracer_old.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_ray_tracer_old2_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_ray_tracer_old2.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_boids_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_boids.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_gimbal_lock_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_gimbal_lock.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_hexapod_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_hexapod.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_path_hexapod_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_path_hexapod.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_rail_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_rail.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_path_stewart_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_path_stewart.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_spider_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_spider.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_spider_wireframe_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_spider_wireframe.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_path_deltabot_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_path_deltabot.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_path_3dprinter_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_path_3dprinter.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_path_fanta_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_path_fanta.png)\n[![Screenshot](https://sites.google.com/site/onlyuser/projects/graphics/thumbs/dexvt-lite_path_fanta_wireframe_thumb.png)](https://sites.google.com/site/onlyuser/projects/graphics/images/dexvt-lite_path_fanta_wireframe.png)\n\nRequirements\n------------\n\nUnix tools and 3rd party components (accessible from $PATH):\n\n    gcc mesa-common-dev freeglut3-dev libglew-dev libglm-dev libpng-dev curl imagemagick\n\nResource files not included:\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eresource files\u003c/th\u003e\n        \u003cth\u003epurpose\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            data/SaintPetersSquare2/posx.png\u003cbr\u003e\n            data/SaintPetersSquare2/negx.png\u003cbr\u003e\n            data/SaintPetersSquare2/posy.png\u003cbr\u003e\n            data/SaintPetersSquare2/negy.png\u003cbr\u003e\n            data/SaintPetersSquare2/posz.png\u003cbr\u003e\n            data/SaintPetersSquare2/negz.png\n        \u003c/td\u003e\n        \u003ctd\u003eCube map texture (6 faces)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003edata/chesterfield_color.png\u003c/td\u003e\n        \u003ctd\u003eColor map texture\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003edata/chesterfield_normal.png\u003c/td\u003e\n        \u003ctd\u003eNormal map texture\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nMake Targets\n------------\n\n\u003ctable\u003e\n    \u003ctr\u003e\u003cth\u003e target          \u003c/th\u003e\u003cth\u003e action                        \u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e all             \u003c/td\u003e\u003ctd\u003e make binaries                 \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e test            \u003c/td\u003e\u003ctd\u003e all + run tests               \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e clean           \u003c/td\u003e\u003ctd\u003e remove all intermediate files \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e lint            \u003c/td\u003e\u003ctd\u003e perform cppcheck              \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e docs            \u003c/td\u003e\u003ctd\u003e make doxygen documentation    \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e resources       \u003c/td\u003e\u003ctd\u003e download resource files       \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e clean_lint      \u003c/td\u003e\u003ctd\u003e remove cppcheck results       \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e clean_docs      \u003c/td\u003e\u003ctd\u003e remove doxygen documentation  \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e clean_resources \u003c/td\u003e\u003ctd\u003e remove resource files         \u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\nControls\n--------\n\nKeyboard:\n\n\u003ctable\u003e\n    \u003ctr\u003e\u003cth\u003e key         \u003c/th\u003e\u003cth\u003e purpose                 \u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e b           \u003c/td\u003e\u003ctd\u003e toggle bounding-box     \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e f           \u003c/td\u003e\u003ctd\u003e toggle frame rate       \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e g           \u003c/td\u003e\u003ctd\u003e toggle guide wires      \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e h           \u003c/td\u003e\u003ctd\u003e toggle HUD              \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e l           \u003c/td\u003e\u003ctd\u003e toggle lights           \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e n           \u003c/td\u003e\u003ctd\u003e toggle normals          \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e p           \u003c/td\u003e\u003ctd\u003e toggle ortho-projection \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e t           \u003c/td\u003e\u003ctd\u003e toggle texture          \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e w           \u003c/td\u003e\u003ctd\u003e toggle wireframe        \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e x           \u003c/td\u003e\u003ctd\u003e toggle axis             \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e z           \u003c/td\u003e\u003ctd\u003e toggle labels           \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e up/down     \u003c/td\u003e\u003ctd\u003e pitch                   \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e left/right  \u003c/td\u003e\u003ctd\u003e yaw                     \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e pg-up/pg-dn \u003c/td\u003e\u003ctd\u003e roll                    \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e home        \u003c/td\u003e\u003ctd\u003e toggle target           \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e space       \u003c/td\u003e\u003ctd\u003e toggle animation        \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e esc         \u003c/td\u003e\u003ctd\u003e exit                    \u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\nMouse:\n\n\u003ctable\u003e\n    \u003ctr\u003e\u003cth\u003e mouse-button + drag \u003c/th\u003e\u003cth\u003e purpose \u003c/th\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e left                \u003c/td\u003e\u003ctd\u003e orbit   \u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\u003ctd\u003e right               \u003c/td\u003e\u003ctd\u003e zoom    \u003c/td\u003e\u003c/tr\u003e\n\u003c/table\u003e\n\nReferences\n----------\n\n\u003cdl\u003e\n    \u003cdt\u003e\"Setting up an OpenGL development environment in Ubuntu Linux\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.codeproject.com/Articles/182109/Setting-up-an-OpenGL-development-environment-in-Ub\u003c/dd\u003e\n    \u003cdt\u003e\"OpenGL Programming\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://en.wikibooks.org/wiki/OpenGL_Programming\u003c/dd\u003e\n    \u003cdt\u003e\"Tutorial - Getting Started with the OpenGL Shading Language (GLSL)\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://joshbeam.com/articles/getting_started_with_glsl/\u003c/dd\u003e\n    \u003cdt\u003e\"Cube Maps: Sky Boxes and Environment Mapping\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://antongerdelan.net/opengl/cubemaps.html\u003c/dd\u003e\n    \u003cdt\u003e\"3D C/C++ tutorials - OpenGL - GLSL cube mapping\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.belanecbn.sk/3dtutorials/index.php?id=24\u003c/dd\u003e\n    \u003cdt\u003e\"Skyboxes using glsl Version 330\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://gamedev.stackexchange.com/questions/60313/skyboxes-using-glsl-version-330\u003c/dd\u003e\n    \u003cdt\u003e\"Rioki's Corner - GLSL Skybox\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.rioki.org/2013/03/07/glsl-skybox.html\u003c/dd\u003e\n    \u003cdt\u003e\"How would you implement chromatic aberration?\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://gamedev.stackexchange.com/questions/58408/how-would-you-implement-chromatic-aberration\u003c/dd\u003e\n    \u003cdt\u003e\"How do you calculate the angle between two normals in glsl?\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://stackoverflow.com/questions/338762/how-do-you-calculate-the-angle-between-two-normals-in-glsl\u003c/dd\u003e\n    \u003cdt\u003e\"Chapter 7. Environment Mapping Techniques\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter07.html\u003c/dd\u003e\n    \u003cdt\u003e\"Humus Cube Map Textures - Colosseum\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.humus.name/index.php?page=Textures\u003c/dd\u003e\n    \u003cdt\u003e\"Kay's Blog Texture and game development freebies! - Well Preserved Chesterfield\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://kay-vriend.blogspot.tw/2012/11/well-preserved-chesterfield.html\u003c/dd\u003e\n    \u003cdt\u003e\"Philip Rideout's OpenGL Bloom Tutorial\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://prideout.net/archive/bloom/\u003c/dd\u003e\n    \u003cdt\u003e\"An investigation of fast real-time GPU-based image blur algorithms\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://software.intel.com/en-us/blogs/2014/07/15/an-investigation-of-fast-real-time-gpu-based-image-blur-algorithms\u003c/dd\u003e\n    \u003cdt\u003e\"mattdesl/lwjgl-basics - ShaderLesson5\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://github.com/mattdesl/lwjgl-basics/wiki/ShaderLesson5\u003c/dd\u003e\n    \u003cdt\u003e\"Jam3/glsl-fast-gaussian-blur - glsl-fast-gaussian-blur\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://github.com/Jam3/glsl-fast-gaussian-blur\u003c/dd\u003e\n    \u003cdt\u003e\"john-chapman-graphics SSAO Tutorial\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://john-chapman-graphics.blogspot.tw/2013/01/ssao-tutorial.html\u003c/dd\u003e\n    \u003cdt\u003e\"Know your SSAO artifacts\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://mtnphil.wordpress.com/2013/06/26/know-your-ssao-artifacts/\u003c/dd\u003e\n    \u003cdt\u003e\"songho.ca OpenGL Projection Matrix\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.songho.ca/opengl/gl_projectionmatrix.html\u003c/dd\u003e\n    \u003cdt\u003e\"3D MeshWorks\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.jrbassett.com\u003c/dd\u003e\n    \u003cdt\u003e\"Missing gtc/constants.hpp #12\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://github.com/g-truc/glm/issues/12\u003c/dd\u003e\n    \u003cdt\u003e\"Kinematics (Advanced Methods in Computer Graphics) Part 4\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://what-when-how.com/advanced-methods-in-computer-graphics/kinematics-advanced-methods-in-computer-graphics-part-4/\u003c/dd\u003e\n    \u003cdt\u003e\"alfanick's inverse-kinematics repo (ccd.cpp)\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://github.com/alfanick/inverse-kinematics/blob/master/ccd.cpp\u003c/dd\u003e\n    \u003cdt\u003e\"Best Inverse kinematics algorithm with constraints on joint angles\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://stackoverflow.com/questions/21373012/best-inverse-kinematics-algorithm-with-constraints-on-joint-angles\u003c/dd\u003e\n    \u003cdt\u003e\"Real-Time 3d Robotics UI (Python)\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://coreykruger.wordpress.com/programming-and-scripting/462-2/\u003c/dd\u003e\n    \u003cdt\u003e\"Anand's blog - GPGPU In Android: Load a texture with floats and read it back\"\u003c/dt\u003e\n    \u003cdd\u003ehttp://www.anandmuralidhar.com/blog/tag/gpgpu/\u003c/dd\u003e\n    \u003cdt\u003e\"Ray-Plane and Ray-Disk Intersection\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes/ray-plane-and-ray-disk-intersection\u003c/dd\u003e\n    \u003cdt\u003e\"Ray-Sphere Intersection\"\u003c/dt\u003e\n    \u003cdd\u003ehttps://www.scratchapixel.com/lessons/3d-basic-rendering/minimal-ray-tracer-rendering-simple-shapes/ray-sphere-intersection\u003c/dd\u003e\n\u003c/dl\u003e\n\nKeywords\n--------\n\n    3D inverse kinematics (cyclic coordinate descent), forward kinematics, rovolute joint constraints, prismatic joint constraints, end-effector orientation constraints, GPU ray tracing\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonlyuser%2Fdexvt-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonlyuser%2Fdexvt-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonlyuser%2Fdexvt-lite/lists"}