
Cinder: open-source creative C++ - kenamarit
http://libcinder.org/
======
qdot76367
There's also openFrameworks: <http://www.openframeworks.cc>

Some major differences:

\- Cinder is more "C++y", i.e. more use of templates, boost, etc...
openFrameworks opts for more "C with classes" approach, which makes it
resemble processing a bit more.

\- Cinder uses system libs, openFrameworks tends to use third party libs that
it wraps into its own API. This puts Cinder closer to the OS on windows/mac,
but means that oF has linux support.

From personal view, it seems like more agencies use Cinder while more
independant devs use openframeworks, but that really doesn't say anything of
the frameworks themselves, more the communities.

~~~
iam
I was really excited, then I noticed there's no Linux support.

------
andrewflnr
So "creative coding" is programming graphics, music, etc., right? Is it just
me or is that something of an inappropriate term? To me it brings to mind, you
know, creative code, clever programming tricks, perl poetry, and the like.
Shouldn't we call this multi-media programming or something more specific?

I've never heard this usage before. Is it common?

~~~
qdot76367
Very common in the digital arts communities. Basically, it's a signifier of
"framework that gets you to pretty/shiny/beepy/pokey the quickest". So, you
usually have a VERY stripped down interface of setup/update/render functions
that allow you to do an interactive task quickly.

If that seems limiting, that's because it is. The thing to realize is that
you're /supposed/ to be limited in the outcome of your program. Usually in
creative coding frameworks, you're just trying to make a program that does a
single thing, but needs graphics/sound/interactivity. Limiting the interface
down to what you need means you can program with the end interactive situation
in mind.

This tends to mean creative frameworks eschew quite a bit of software
engineering practices in deference to ease/speed, which can cause software
developers coming into these frameworks to think they're, well, crap. But, the
single use practicality does make it nice versus trying to implement this
stuff in something like a full on game engine.

~~~
commieneko
I got started with programming back in the 1970s doing "creative coding",
although we didn't call it that. It is a very different environment with very
different set of standards. I did all sorts of multi-media work and even got
into motion picture effects in the late '80s, early '90s.

One thing about these types of projects, mistakes, errors, and even plain old
bad practices, things that are anathema in most coding domains, often can
produce not only useful, but spectacular results. Especially in things like
particle systems; but I've seen really cool moves generated by errors in
easing functions in 'tweening code as well.

Sometimes when I'm bored by the results of a carefully planned piece, I've
been known to purposefully try and break things a bit.

Edit: These days I play around with Processing quite a bit. I took a look at
Cinder a year or so ago, and while it looked cool, it's a _lot_ more work to
mess around with. I'd have to get a lot more serious to play around with it.
But if I came up with something really cool with Processing, I might very well
want to port or rework it with Cinder for the obvious speed and interactivity
performance.

------
thesnark
Having never used Cinder before, why would someone choose it over processing?

~~~
gregschlom
Amazing demo form one of Cinder's co-authors:
<http://roberthodgin.com/cymatic-ferrofluid/>

He says that he started with Processing, so I'm guessing that at some point he
felt limited by the performance he could get out of it.

~~~
wicknicks
Wow! That is some beautiful artwork!

------
rhdoenges
not for linux. ;_____;

------
cageface
Cinder looks nice but the last time I checked it didn't support OpenGL ES 2.0
shaders. Has that changed?

------
skrebbel
I tried it a few years ago, but I had a hard time getting into it. (Back then,
) its documentation failed past the obvious first examples, which meant that
the authors basically assumed you already knew everything about how to write
realtime 3d graphics on modern hardware and recent OpenGL versions.

I'd assume that if I already knew all of that, I would've probably made some
own code for it before, so wouldn't need Cinder for anything. Compared to
Processing, Cinder's entry-barrier is orders of magnitude higher.

Or maybe I'm just too stupid. :-)

------
mweibel
A word about the website, especially the Hello, Cinder tutorial: Please make
the links more visible, thanks :)

------
armitage
I love Cinder!

