How pundarikakshntripathi/lumasort-engine works
LumaSort is a desktop visualizer that turns webcam frames, loaded images, or canvas drawings into particles that converge on a target image. The user selects an input and target, previews content, then starts or stops the transformation; GUI controls also tune particle and flow parameters. App coordinates capture, canvas input, sorting, simulation, and rendering. The README documents webcam input and adaptive resolution, but the sampled excerpts do not show their implementation details, so those internal links are omitted. The graph includes the documented capabilities while limiting implementation links to supported calls.
Main entry points: app.cpp App Coordinator · gui_layer.cpp Controls and Dialogs · renderer.cpp Particle Renderer · main.cpp Application Entry
Components 16
User Interaction
- Application Entry
src/main.cpp - App Coordinator
src/app.cpp - Controls and Dialogs
src/ui/gui_layer.cpp - Native File Dialog
Image Inputs
- Webcam or Image
- Webcam
- Drawing Canvas
src/graphics/canvas.cpp - Target Image
Particle Simulation
- Luminance Sorter
src/core/sorter.cpp - Particle State
src/core/particle.h - Noise Flow Field
src/core/flow_field.cpp
Graphics and Display
- Particle Renderer
src/graphics/renderer.cpp - Particle Shaders
assets/shaders/particle.vert - GPU Texture
src/graphics/texture.cpp - Window Display
Other components
- User
Connections 21
- User → Application Entry: launches
- Application Entry → App Coordinator: creates
- App Coordinator → Controls and Dialogs: coordinates
- User → Controls and Dialogs: operates
- Controls and Dialogs → Native File Dialog: opens picker
- Controls and Dialogs → App Coordinator: controls
- App Coordinator → Webcam or Image: loads image
- Webcam → App Coordinator: provides frames
- App Coordinator → Drawing Canvas: draws and reads
- Drawing Canvas → App Coordinator: returns image
- App Coordinator → Target Image: loads target
- App Coordinator → GPU Texture: uploads preview
- Controls and Dialogs → GPU Texture: shows preview
- App Coordinator → Luminance Sorter: calculates mapping
- Luminance Sorter → App Coordinator: returns mapping
- App Coordinator → Particle State: updates state
- App Coordinator → Noise Flow Field: gets force
- App Coordinator → Particle Renderer: renders particles
- Particle Renderer → Particle Shaders: loads shaders
- Particle Renderer → Window Display: draws frame
- Controls and Dialogs → Window Display: draws controls