osciGL is a small wrapper utility that shall help visualizing and analyzing sampled data in realtime. Using Nvidias Cuda technology together with OpenGL to process data input streams shall never be more simple than with osciGl. Therefore predefined interfaces help easily adding new applications to the osciGL runtime.
Imagine you get a new device that just tells you raw data. With normal circumstances you'd first just catch a sample of the data, and write a small Matlab or Python script to get known to formats, required transformations or further different imaging alorithms. Now imagine you'd have a realitime environment for getting known to unknown data. You open your IDE, tell some class your first idea of how your input looks alike and your machine just starts drawing.
With osciGL this problem shall become simple and convenient to solve. osciGL makes direct use of the GPU to analyze input streams reliant and performant.
Nowadays this means that increddible amounts of samples can be added, moved, transformed, etc. within the split of a second. You don't even need the newest GPUs for it. Even if you want to deal with either big amounts of data or high resolution data.
The facing principle of osciGL beside the heavy use of GPU is memory management. Therefore written partly in C but mostly in C++ osciGL tries to tie down memory duplication to its lowest level.
osciGL shall make applied science more simple by taking infrastuctural and technical issues away from the user. When finished, maybe there can also be a binding for Python, Rust or Go available.
osciGL is still in its most early development stages.
To be able to reach a wide amount of users osciGL is tried to be implemented as optional and modular as possible. A simple API together with small cut interfaces and highly extendible abstract classes shall provide an readable and conclusive environment for digital data processing.
Currently the most techtonic action in osciGL is inside its architecture. Interfaces are added and changed up and down. While writing the first unit tests with googletest, more and more possibilities for modualrization is found.
Unfortunately before further development of new features, a proper output interface and some unit tests have to be implemented.
- get familiar with the non existing camera concept see: https://learnopengl.com/Getting-started/Camera
o We can create a functionality that provides the perfect camera base by calculating the Orthonormal Basis for some vectors.
- done! GLFW it is!
- Data Processing Pipe
- Fast Fourier Transformation
- Realtime Operation Interpreter
- Rendering Choices
- Imaging Support
- Camera as Example Input Source
- Image Renderer
- 2nd View (almost done not yet tested)
- Imaging Support
- Context Menu support
- Switching between Pipes
conan profile detect --force # only needed once
cmake -S . -B build/Debug -G Ninja
-DCMAKE_TOOLCHAIN_FILE=build/Debug/conan_toolchain.cmake
-DCMAKE_BUILD_TYPE=Debug
cmake --build build/Debug
The CMake command above references the toolchain generated by the Conan install
step. Adjust the generator or build directory as needed for your environment.
The solution targets Visual Studio 2022 and requires the MSVC v143 toolset. CUDA support uses the build customizations for CUDA 12.9. Install these components with the Visual Studio Installer and ensure the CUDA 12.9 Toolkit is available on your system.
conan profile detect --force
# 1. Conan aufrufen
conan install . --output-folder=build --build=missing
# 2.
cd build
# 3.
cmake .. -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake"
# 4.
cmake --build . --config Release
# list presets
cmake --list-presets
# execute tests
ctest --output-on-failure
See (Conan Center Recepies)[https://conan.io/center/recipes] for more packages.
Use Preset
conan install . --output-folder=build --build=missing
cmake --preset vs2022-release
