Skip to content

roestzwiee/osciGL

Repository files navigation

osciGL

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.

Vision and Idea

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.

Current State

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.

Currently in Work

Unfortunately before further development of new features, a proper output interface and some unit tests have to be implemented.

osciGL in current stage

Improved Zooming & Scales and Metrics

o We can create a functionality that provides the perfect camera base by calculating the Orthonormal Basis for some vectors.

Evaluate Window Toolkits

  • done! GLFW it is!

Features In Development

  • 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)
  • Context Menu support
    • Switching between Pipes

Building

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

About

a small lib to create oscilloscope views with OpenGL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors