The libobscura experiment exists to find out what a point-and-shoot API abstracting Video4Linux should look like. It has its roots on one hand in the Librem 5 project, where I wrote some 70% of the camera stack, and on the other hand in libcamera, which I found too difficult to use.
You think controlling a modern camera is easy? Think again. Between pixel formats, depths, media entities, pads and links, sensitivity, denoising, phase detection, shutter lengths, DMAbuf, OpenGL, feedback loops, requests, and statistics, there's enough opportunities to get lost in the detail.
Thankfully, Prototype Fund thinks I'm up for the challenge, so they are funding me through libobscura in order to get lost, and maybe find something in the process.
Project repo: https://codeberg.org/libobscura/libobscura