My project for a climbing wall. Although in principle a climbing wall is not necessary.

The first recorded tests took place on March 11, 2016. A straightforward and reasonably practical solution. You can read a little more about the beginning of my project steps here: https://klimek.link/processing-z-opencv/

Latest version. OpenFrameworks based solution. Activities programmed in Lua. You can find project development on GitHub: https://github.com/marcinklimek/cinderclimb-of
{"cc_re__cc_re__cc_by_sa_4_0": ["low:hidden\"><iframe src=\"https://www.youtube-nocookie.com/embed/f2_wTw7pFhY\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;border:0\" allowfullscreen title=\"YouTube Video\"></iframe></div><figure><figcaption>April 2, 2018</figcaption></figure></div><footer class=\"post-footer\"></footer><div class=\"comments-separator\"></div></article></main><footer class=\"footer\"><span>&copy; 2023 <a href=\"https://klimek.link\">Side Effects</a></span><span style=\"display:inline-block;margin-left:1em\">\n<a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA</a></span>\n<span><a class=\"link\" href=\"/privacy\" rel=\"noopener\">\u25b7 Privacy Policy</a></span></footer><a href=\"#top\" aria-label=\"go to top\" title=\"Go to Top (Alt + G)\" class=\"top-link\" id=\"top-link\" accesskey=\"g\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewbox=\"0 0 12 6\" fill=\"currentcolor\"><path d=\"M12 6H0l6-6z\" /></svg></a><script>(function(){const t=\"\"==\"1\";if(t)return;let e=document.getElementById(\"theme-toggle\");e.removeEventListener(\"click\",toggleThemeListener),e.addEventListener("]}