Skip to content

marcinklimek/cinderclimb-of

Repository files navigation

What is it?

This is an environment for programming climbing wall activities but you can use it with any wall. Based on OpenFrameworks library, Kinect 2 camera and projector.

Activities are programmed in an internal Lua scripting language.

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 very simple and reasonably effective solution.

First version

Latest version. OpenFrameworks based solution. Activities programmed in Lua.

OpenFrameworks version

TODO

Types of activities, for people with disabilities:

  • extinguishing points vertically, unilateral linear movement and alternating
  • extinguishing segments of the displayed picture, moving around the whole wall
  • sorting elements by categories (ascending, descending) - screen version
  • Clock exercise - following the clock hands (additional version for the screen)

Types of activity, for healthy people:

  • water and fire - running away from water flooding us from below and/or fire from above
  • erasing the image with one's own body
  • catching eggs, the higher the more points
  • smearing with the whole body - the effect of smearing with poster paints, for children who have just started climbing. The first steps in climbing, getting familiar with holds
  • displaying a shape on the wall - you have to position yourself according to it and persevere for a while
  • jumping frog - only one hold is visible and the participant jumps to the next hold

Other

Must read

Todo in lua

Tools

Compile under VS

Games for the wall

R&D

Inspirations

Body center of mass

Other

Camera

Problems

GLM

After the update of GLM lib, the templated function

	template<typename genType>
	GLM_FUNC_QUALIFIER genType fma(genType const& a, genType const& b, genType const& c)
	{
		return a * b + c;
	}

has to be enabled, otherwise unresolved symbols will appear.

ofxLuaBind

Before generating bindings with SWIG, In the file ofUtils.h:

template auto ofVAArgsToString(const char * format, VAList args) -> typename std::enable_if<std::is_same<va_list, VAList>::value, std::string>::type { return ofVAListToString(format, args); }

comment it out. Otherwise SWIG will fail

Generating the bindings:

-gen.bat- rem choco install swig

swig -v -c++ -lua -O -Ic:/workspace/climbing/of/libs/openFrameworks -DMODULE_NAME=of -DOF_SWIG_RENAME -o lua/desktop/ofBindings.cpp openFrameworks.i swig -v -c++ -lua -O -debug-lsymbols -Ic:/workspace/climbing/of/libs/openFrameworks -DMODULE_NAME=of -DOF_SWIG_RENAME -o lua/desktop/ofBindings.cpp openFrameworks.i >of_symbols.txt

swig -v -c++ -lua -O -Ic:\workspace\climbing\of\libs\glm\include\glm -DMODULE_NAME=of -DOF_SWIG_RENAME -o lua/glmBindings.cpp glm.i swig -v -c++ -lua -O -debug-lsymbols -Ic:\workspace\climbing\of\libs\glm\include\glm -DMODULE_NAME=of -DOF_SWIG_RENAME -o lua/desktop/glmBindings.cpp glm.i >glm_symbols.txt

swig -v -c++ -lua -external-runtime lua/desktop/ofBindings.h