Lightningbeam/lightningbeam-ui/lightningbeam-core/src
Skyler Lehmkuhl 318720f89d Fix gamma handling and improve brush canvas performance
Color correctness:
- Unpremultiply before the sRGB OETF on the display and export blits;
  encoding premultiplied color corrupted antialiased/transparent edges.
- Tag exported video as full-range BT.709 (matrix/primaries/transfer).
- Run perception effects (invert, brightness/contrast, hue/saturation)
  in gamma space to match standard editors.
- Interpolate gradients in gamma space across the raster and vector paths.
- Render effect thumbnails in the same linear space as the live pipeline.

Brush performance:
- Store the raster canvas as Rgba16Float (no shadow banding from 8-bit
  linear), with an incremental per-tile ping-pong sync replacing the
  per-frame full-canvas copy.
- Do the linear->sRGB readback conversion on the GPU and reuse a cached
  scratch texture, dropping a ~110ms-per-stroke CPU decode.

Cleanup:
- Single COLOR_WGSL prelude and shared CPU sRGB scalars instead of ~8
  duplicated copies of the transfer functions.
- Shared compute-pipeline builder; smudge folded onto the tile-sync path.
2026-06-16 08:32:39 -04:00
..
actions Make beats canonical representation rather than seconds 2026-06-02 13:06:36 -04:00
dcel2 Merge branch 'rust-ui' of https://git.skyler.io/skyler/Lightningbeam into rust-ui 2026-03-09 13:41:48 -04:00
gpu Fix gamma handling and improve brush canvas performance 2026-06-16 08:32:39 -04:00
shaders Fix gamma handling and improve brush canvas performance 2026-06-16 08:32:39 -04:00
vector_graph work on vector graph 2026-03-22 18:16:17 -04:00
action.rs All events now have three time references for seconds, measures/beats, frames 2026-03-30 10:15:55 -04:00
animation.rs Group shapes 2026-02-20 11:13:56 -05:00
asset_folder.rs add folders to asset library 2025-12-30 00:45:19 -05:00
beat_time.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
bezier_vertex.rs initial vector editing 2025-12-22 18:34:01 -05:00
bezpath_editing.rs initial vector editing 2025-12-22 18:34:01 -05:00
brush_engine.rs Add blur/sharpen tool 2026-03-06 11:47:10 -05:00
brush_settings.rs add brush library 2026-03-04 16:42:43 -05:00
clip.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
clipboard.rs More work on DCEL correctness 2026-03-09 13:41:45 -04:00
clipboard_platform.rs Address Mac build failures 2026-03-09 22:03:51 -04:00
curve_intersection.rs Paint bucket 2025-11-19 01:47:37 -05:00
curve_intersections.rs rewrite vector backend again 2026-03-13 18:53:33 -04:00
curve_segment.rs Paint bucket 2025-11-19 01:47:37 -05:00
dcel.rs rewrite dcel 2026-02-26 18:48:21 -05:00
document.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
effect.rs add folders to asset library 2025-12-30 00:45:19 -05:00
effect_layer.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
effect_registry.rs Fix gamma handling and improve brush canvas performance 2026-06-16 08:32:39 -04:00
export.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
file_io.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
file_types.rs Add asset pane 2025-11-30 06:54:53 -05:00
flood_fill.rs Magic wand selection 2026-03-07 03:39:09 -05:00
gap_handling.rs Paint bucket 2025-11-19 01:47:37 -05:00
gradient.rs Add gradient support to vector graphics 2026-03-10 00:57:47 -04:00
hit_test.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
instance_group.rs Audio from videos 2025-12-03 01:04:09 -05:00
intersection_graph.rs Clean up build warnings 2026-02-14 11:07:32 -05:00
layer.rs Make beats canonical representation rather than seconds 2026-06-02 13:06:36 -04:00
layer_tree.rs Initial work on movie clips 2026-02-21 00:54:38 -05:00
layout.rs Add Rust desktop UI with Blender-style pane system 2025-11-12 06:13:00 -05:00
lib.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
object.rs tests 2025-11-29 13:39:31 -05:00
pane.rs Add script node 2026-02-19 09:29:14 -05:00
path_fitting.rs Clean up build warnings 2026-02-14 11:07:32 -05:00
path_interpolation.rs Render shape on stage 2025-11-16 02:40:06 -05:00
planar_graph.rs Clean up build warnings 2026-02-14 11:07:32 -05:00
quadtree.rs Paint bucket 2025-11-19 01:47:37 -05:00
raster_draw.rs Shape tools 2026-03-07 07:27:45 -05:00
raster_layer.rs Refactor tools and fix bugs 2026-03-08 18:44:32 -04:00
region_select.rs rewrite dcel 2026-02-26 18:48:21 -05:00
renderer.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
script.rs Add script node 2026-02-19 09:29:14 -05:00
segment_builder.rs Clean up build warnings 2026-02-14 11:07:32 -05:00
selection.rs work on vector graph 2026-03-22 18:16:17 -04:00
shape.rs Change vector drawing primitive from shape to doubly-connected edge graph 2026-02-23 21:29:58 -05:00
snap.rs work on vector graph 2026-03-22 18:16:17 -04:00
svg_export.rs More work on DCEL correctness 2026-03-09 13:41:45 -04:00
tempo_map.rs Massive tempo refactor - make beats canonical time rep and allow them to be non constant 2026-04-02 10:26:01 -04:00
test_mode.rs Fix DCEL selection bugs 2026-03-05 19:55:39 -05:00
tolerance_quadtree.rs Paint bucket 2025-11-19 01:47:37 -05:00
tool.rs work on vector graph 2026-03-22 18:16:17 -04:00
video.rs rewrite unsafe code in ffmpeg ffi 2026-02-15 23:35:30 -05:00
webcam.rs Record to multiple layers 2026-03-01 13:48:43 -05:00