Music is Ybe 76 by Subheim

I’ve been trying to find more time lately to experiment with C++ and get more familiar with the OpenGL API and to achieve this have been using the excellent Cinder library. I’m a complete C++ novice and, coming from a Flash background, it’s immediately apparent how much of the hard work had been done for you in higher level languages like AS3. Learning about pointers, memory allocation and fumbling your way around undescriptive compile errors is bit of an eye opener, although thankfully libraries like Cinder and OpenFrameworks help take a lot of the pain out of the transition and ultimately function as very exciting and inspiring tools to work with.

Up until now I’ve been keeping most of these experiments to myself (although some crop up on my Flickr stream from time to time), but I’ve decided to start sharing the processes when I can – so that you can tell me what I’m doing wrong and teach me the right way! Or, if you’re like me and are used to languages like AS3, JavaScript and Processing / Java, but are wanting to take your creative coding into other environments; maybe you can learn a little bit from what I’ve been trying.

Either way, the Noise Sphere experiment, though not particularly original; made me realise that the processes involved spanned many of the key aspects of programming that I’m both interested in but also keen to learn much more about.

The plan is to release a series of relatively quick tutorials, taking you through the process of creating the sketch you can see in the video above (and far beyond, into OpenGL shaders etc) and in doing so cover roughly the following topics:

  • Setting up Cinder
  • Geometry: Vectors & Matrices
  • Movement & Dynamics
  • Procedural Mesh Generation
  • OpenGL: GLSL, Vertex & Fragment Shaders

I’m certainly not claiming to be an expert in these topics, in fact in some I’m only just getting started. But my hope is that I can share my discoveries as they happen and pass on knowledge I’ve picked up from the community, in case it helps other developers travelling along similar trajectories to myself. I’ve found a lot of amazing resources for learning, but have often felt that some of them would benefit from being translated for interactive developers such as myself, who come from more of a creative than technical background.

Pester me if part one isn’t out soon!

Posted on 23 Feb 2011
31 Comments
2 Trackbacks

Meta

Noise-Reactive Particle Sphere was posted on February 23rd 2011 in the category Lab / Cinder, Lab, Programming and tagged; , , , , , , .

You can Leave a comment.


Warning: file_get_contents(http://search.twitter.com/search.atom?q=from:soulwire&rpp=1) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 410 Gone in /home/soulwire/webapps/soulwire_blog/wp-content/themes/soulwire/functions.php on line 203

Discussion

24 Responses to Noise-Reactive Particle Sphere

Leave a Reply

Pingbacks / Trackbacks

  1. 6 years ago Weekly Shared Items – 25. February, 2011 | TOXIN LABS - weblog of a german design student from wuerzburg

    [...] The CIA’s Historic Spy Kit24. February, 2011Debugging MSP430 using Eclipse24. February, 2011Noise-Reactive Particle Sphere23. February, 2011The 74HC595 8 bit shift register9. February, 2011WebGL in Chrome, Experiments [...]

  1. Paul 6 years ago

    This is a lovely experiment – I really enjoyed watching it go!

    I totally understand what you’re getting at, though; I’ve been spending more time with C++ myself recently! I think it is, as you say, quite different to the more high-level languages that we’re used to, but I guess a lot of things still apply (inheritance etc). Funny that we consider C++ relatively low-level, I’m sure the guys who work with it all the time probably figure it’s high-level compared to things like assembly! :D

    It would be great to see what resources you’ve managed to find – I found some were either far too technical (typically the Maths parts!) or much too simplified and didn’t quite hit the mark.

    Reply to this comment

    1. Soulwire 6 years ago

      Hey Paul,

      You’re right – once you get past some of it’s nuances there’s a lot of familiar ground there. Haha, and yes I suppose it being ‘low-level’ is a matter of perspective!

      In terms of the resources I’ve been using; I’ve found that a lot of them make a great deal of assumptions about your familiarity with the language and some of the common APIs (like OpenGL) and with respects to the maths, I personally almost always need code or pseudo-code as I’m not great at translating LaTeX notation or the like! Hence wanting to go step-by-step through the process of creating a sketch with say, a developer coming from AS3 in mind.

      I’ll make sure I include a lot of links to resources in the write-up(s)!

  2. Devon O. 6 years ago

    That’s some really nice work. It’ll be great to see some write ups on oF, Cinder, and the like from an Actionscript Dev’s perspective. I’m looking forward to the articles to come.

    Reply to this comment

    1. Soulwire 6 years ago

      Cheers Devon. Yeah, I’m sure there’s quite a few people in the same boat and hopefully they’ll be useful. Drafting part one now and working out part two (‘the teacher only has to be one lesson ahead of the pupil’ as they say!) so hopefully they’ll emerge soon :)

    2. Stephen 6 years ago

      Second the motion. I would love to get into openFrameworks and Cinder for the leap in graphics performance but it’s hard to know where to start. Lead on!

  3. Evan 6 years ago

    This is going to be so awesome. I used to learn from your AS3 code from wayyyyy back, glad to see you are sharing your experience in new stuff. I’ve just started to play around with openFrameworks recently so this will definitely be helpful.

    Reply to this comment

  4. rauri 6 years ago

    very nice… and what’s the tune?

    Reply to this comment

    1. Soulwire 6 years ago

      It’s ‘Ybe 76′ by Subheim. I added it to the Vimeo info but will put the details in this post now! :)

  5. Li 6 years ago

    Beautiful!
    I’ve just started learning C, C++, Cinder too, coming from Flash only, and yeah, its a whole new world. I’m sure you’ve seen Robert Hodgin’s extension to the Cinder tour: http://libcinder.org/docs/dev/hello_cinder.html
    That’s one heck of a tutorial :D

    Reply to this comment

    1. Soulwire 6 years ago

      Yeah, that was a fantastic resource from the master himself! It helped a lot to be taken through the syntax etc, but also nice to see how he develops a project creatively. Great stuff :)

  6. Eric Priou 6 years ago

    Thanks to share such a conversion to the C world !

    Reply to this comment

    1. Soulwire 6 years ago

      Haha, not a conversion; merely a diversion (or maybe expansion is a better term). Still going to be Flashing :)

  7. Mauro 6 years ago

    Ehy, first all, sorry for my english… i’m italian and… so… i try to do my best! :-)
    Anyway… i’m happy to read this post because i’m in the same situation of you: i come from as3 and now i want to start study more C++, oF, Cinder, Processing…. and so on.
    I’m a little bit in delay and i’m not as good programmer as you, maybe also because in the last 3 years i work a lot… but now i take the time to experiment some new stuff and i’m going open a blog like your…. but in italian… because the are no blog who speak about this stuff in my language.
    So… good luck for your new projects and, of course i will link some of your tutorial in my blog and maybe reading your post i will learn something new for my blog! \m/_
    Ciao!

    Reply to this comment

  8. Michael 6 years ago

    This looks great – I look forward following in your footsteps someday soon.

    Cheers.

    Reply to this comment

    1. Soulwire 6 years ago

      Hey Michael and thanks! Long time no speak – hope all is good. I really like your ideas for the future of FootLooseMoose. The graphics are excellent and I really want to see the cute moose come to life in a physics / platform game! I’ll be keeping a keen eye on it :)

  9. Miles Ryan 6 years ago

    Great experiment!

    I also come from an AS3 background and have been looking to break into C++. I look forward to reading the rest of the series.

    Cheers

    Reply to this comment

  10. Gerald Yeo 6 years ago

    Looks great! I’m just starting on Cinder and oF too, and yes, the learning curve is steep. Seeing how you experiment with them will be useful in my learning too.

    Reply to this comment

  11. siddharth 6 years ago

    nice! i used to spend a lot of time with c++ and opengl during my master’s days :) but unfortunately have never gotten back to it. we were trying to build a water surface simulator using height maps and perlin noise generators.

    will be eagerly following your experiments, just as i follow your as3 work.

    Reply to this comment

  12. joris 6 years ago

    Great article,
    I too come from a AS3 background and started to fiddle around with OF. The pointers and memory management is something totally new but opens a lot of opportunities! The cool thing about Cinder/OpenFrameWorks is the awesome community. They helped me with the most basic(sometimes stupid) questions! Looking forward to spend more time in the C++ world ( and your articles about it)!

    Reply to this comment