open-source-ideas / ideas

💡 Looking for inspiration for your next open source project? Or perhaps you've got a brilliant idea you can't wait to share with others? Open Source Ideas is a community built specifically for this! 👋
6.56k stars 221 forks source link

A memory access visualization library #360

Open KOLANICH opened 1 year ago

KOLANICH commented 1 year ago

Project description

When developing C++ software sometimes it is needed to debug access to elements within arrays. Since while processing arrays the software doing it has to pass many iterations, debugging it step-by-step while watching into watch is not the most comfortable way.

It is proposed to add a bit of visualization to the process.

  1. All objects use RAII idiom.
  2. A user includes a header and links the software with a certain library.
  3. A user creates a visualization object. This object manages the visualization window. The window lives in a separate thread.
  4. A user spawns objects representing visualizations of arrays. For each such an object a user provides its dimensions. Dimensions can be altered further. Spawning an object causes visualization window to draw it. For 1D one it is a bar with cells. For 2D it is a matrix. For multiple dimensions these are sections.
  5. A user calls the API of the arrs viz objects to create cursors. Each cursor is a marker on the bar. The parts of the bar where cursors reside are magnified as if under a magnifying glass.
  6. A user calls the API to set positions of cursors.

Also it should be possible not only to display the picture in real time, but also log the events into a binary format, and then visualize them.

Relevant Technology

Complexity and required time

Complexity

Required time (ETA)

Categories

ZigRazor commented 1 year ago

Good Idea, when start, I want to partecipate!

PersonalKez commented 2 months ago

having a go at this

PersonalKez commented 2 months ago

Sorted. https://github.com/PersonalKez/ArrVizLib

Feedback welcome. Install is a bit clunky but generally always is on Windows CMAKE.