This is a list of TODO items, wishlist bugs and possibilities of future directions the project could take.

  • cmake
    • Move cmake code from toplevel CMakeLists.txt into subdirectories. Currently, even when changing unrelated options, too many components are rebuilt because the toplevel makefile adds global include directives.
    • Remove WITH_* options and replace them with cmake add_custom_target and add_dependency. That way, one could just make all or make show without having to reconfigure the project.
  • show
    • Replace the glui GUI with a Qt5 GUI.
    • Update OpenGL to a more recent version
    • Add mode that allows one to turn/rotate the model instead of flying through the scene.
    • Expand the command line such that more options that are only accessible from the GUI (point size, fog, coloring, pose) can be set from the command line.
    • Use boost_program_options for command line arguments.
    • Add configuration file for all command line arguments which is easy when using boost_program_options.
    • Fix top-view scale: when taking pictures with factor from topview the scale is drawn several times.
    • Draw coordinate system that rotates with the view.
    • Add live-scripting capability in Lua or Python.
  • scanio
    • Allow opening arbitrary filenames (also without pose and frames files). This can be done by checking whether the given path is a directory (then use existing method) or a file (then load a single file).
    • Add b3d as a scanio reader.
    • Add a new scanio format called "oct" which is able to load plain *.oct files as created by --saveOct. This might require a slight change in the *.oct format because we don't yet store the datatype in the *.oct files but require the user to pass them via the -f flag. Doing that should not be necessary as the *.oct files should be usable as a stand-alone file format.
    • in addition to the existing filter options, add an option to scale the scans while reading them. Scaling is currently hardcoded in the respective scanio readers and it would be nice if the scale could be set via the command line. While one is at it, one could also think about passing a 4x4 matrix which would not only allow scaling but also rotation and translation.
  • project
    • Add bug tracker.
    • Add CI (auto-rebuild on multiple platforms, fuzzing, valgrind, asan, clang-analyzer, scan.coverity).
    • Add more unit tests.
  • architectural
    • Add a template for the internal data type (float/double/int32/int64). Currently it's hardcoded as double.
    • Compare Flatbuffer versus Cap'n Proto versus HDF5 for saving pointclouds+pose+frames, check memory requirements, streaming capabilities.
    • Allow integration in meshlab
Informatics VII - Robotics and Telematics, Prof. Dr Andreas Nüchter, andreas (at) nuechti.de, Tel. +49-177-7951270