Qt-based implementation of VisOpt Slider widget [UIST 2014] for C++ & Python
MIT License
Qt-based implementation of VisOpt Slider widget [UIST 2014]
If your applications are based on Qt (PySide2), it is quite easy to integrate a VisOpt Slider widget into your applications.
VisOpt Slider is a GUI widget consisting of multiple sliders. It is specifically designed for interactive exploration of a high-dimensional scalar-valued function. It has the following special features.
This package can be install via pip
:
pip install visoptslider
By this, the dependencies (matplotlib
, numpy
, PySide2
, and their dependencies) will be automatically installed together.
from PySide2.QtWidgets import QApplication
import numpy as np
import visoptslider
if __name__ == "__main__":
app = QApplication()
# Define a target function
num_dimensions = 3
def target_function(x):
return 1.0 - np.linalg.norm(x)
# Define a target bound
upper_bound = np.array([+1.0, +1.0, +1.0])
lower_bound = np.array([-1.0, -1.0, -1.0])
maximum_value = 1.0
minimum_value = 0.0
# Instantiate and initialize VisOpt Slider
sliders_widget = visoptslider.SlidersWidget()
sliders_widget.initialize(num_dimensions=num_dimensions,
target_function=target_function,
upper_bound=upper_bound,
lower_bound=lower_bound,
maximum_value=maximum_value,
minimum_value=minimum_value)
# Show VisOpt Sliders
sliders_widget.show()
app.exec_()
See https://github.com/yuki-koyama/visoptslider/tree/master/python_tests for more detailed examples.