Cinder – a C++ library for programming with aesthetic intent
libcinder.org
libcinder.org
By pure chance I ended up getting in touch with the original developers and a couple of museum curators from Cooper Hewitt who helped acquire the original code as digital art work. https://sebchan.substack.com/p/48-on-planetary-in-2020-curat...
It’s been a lot of fun!
It's always fun to watch Robert talk about the Planetary app in his Eyeo 2012 talk [1] (begins around the 30 minute mark).
Is the updated/fixed code for Planetary available for reference anywhere?
Felt like "the library was programmed in a certain style to prove a point", instead of a library targeted at multimedia applications.
My guess: they're going to gloat over immediate-mode for a decade or two, then some folks are going to develop retained-mode code (library/framework/whatever) on top of imgui, and then they're going to gloat over that for another decade. And they'd reach a point where we are today. Fantastic.
The guy in the famous 40-minute video, the beginning of which explains RM vs IM, appears to make claims that he's too busy and doesn't have time writing research papers. Wow. He discovered IM on his own probably, and reached the conclusion that he's discovered something no one else has discovered and should be writing a research paper. Jeez.
Really, the reason people get excited about dear-imgui is the fantastic ease with which it allows you to create debug/dev GUI stuff. This is primarily of benefit in game development, which is where imgui arose and where the vast majority of dear-imgui users work. Once you have it set up, you can place code to create GUI elements anywhere within your application, allowing you to place widgets that let you tune values while your code is running in shockingly little time.
It's not really a good fit for standard application development, though. Primarily this is because it is "bring-your-own-rendering-pipeline." If you know how to set up a simple opengl context this isn't all that difficult, but it's not a route that most app devs are going to want to follow (especially because it kind of assumes you are using a game-loop-type architecture based around a framerate). Some people do use it for user-facing UIs, but that's not where its strengths lie.
https://www.youtube.com/watch?v=50JxBTVGmi0
Working on aligning lyrics from audio with on-screen words next. Some big strides have been made in auto-lyric alignment in the past years.
[1] https://github.com/chitralekha18/AutoLyrixAlign [2] https://github.com/Gazoo101/lyric-manager
I find the Nannou library to be very intuitive to use akin to when I first found Processing[4] in the early 2000's.
I am not a Rust programmer by any means, but the site and examples are very helpful.
C was the third language I learned starting in the 80s. Assembly and Basic in 1978, so I try to be language-agnostic and go with what works for me, but for creative coding, you need to find what allows your personal expression to flow.
[1] https://extemporelang.github.io/
[2] https://www.napframework.com/
[3] https://nannou.cc/
[4] https://processing.org/Be sure to checkout the gallery: https://libcinder.org/gallery
But take Unreal for example: you have this absolutely massive world of presets/plugins/etc made by the community. You have Niagara particle systems. You have incredible post-processing / color correction / cinematic grading / etc. You have Blueprints, the ability to write code, etc. You have the entirety of Quixel's megascans, etc. It's almost completely effortless to make unbelievably gorgeous/immersive things, whether it's near-photorealistic environments/landscapes, abstract audio visualizations, full on games, etc.
I'm genuinely trying to understand why anyone who works in interactive/realtime 2D or 3D visualization would ever use Cinder or Processing these days. Thoughts?
openframeworks seemed to have almost everything, but just kind of felt like it had little organization or consistency and instead was just a repository for other libraries.
To be honest though these days I think a lot of people have moved on to visual programming tools like TouchDesigner/VVVV/Notch as it's so much faster to get creative out the door with those and you still get glsl shaders and C++ integration with them.
Saying that with TouchDesigner and Notch youre paying (and in notch's case quite a lot), you can't distribute and files are heavy but when doing interactive installs and shows the benefits far outweigh the price and time saved so we use those tools far more than libraries these days.