Skip to content

live tweaking

Alexandre Marcireau edited this page Oct 14, 2019 · 6 revisions

example files: examples/live_tweaking

You can either create a similar directory and install the Sepia, Tarsier and Chameleon dependencies as in the basics tutorials, or run:

git clone https://github.com/neuromorphic-paris/tutorials
cd tutorials/examples/live_tweaking
git submodule update --init --recursive -- third_party/sepia
git submodule update --init --recursive -- third_party/tarsier
git submodule update --init --recursive -- third_party/chameleon
premake4 gmake
cd build
make && release/live_tweaking

While developing an algorithm, it can be useful to manually tweak its parameters in real-time. This behavior can be implemented using:

  • a Qt Quick Control 2 element, such as a Slider, a Dial, a CheckBox...
  • a QQmlPropertyMap to create a bridge between QML and C++
  • an event-handler using parameters with the std::atomic& type
  • a lambda function to update the atomic parameters when the QQmlPropertyMap changes

This example uses these components to implement a tweakable denoiser. It makes use of a mask_isolated event handler with a std::atomic<uint64_t>& time window, unlike the original mask_isolated provided by the Tarsier library.

Note that some Qt Quick Control 1 elements are not compatible with the OpenGL version used by the Chameleon displays. Qt Quick Control 2 element should be preferred.

Clone this wiki locally