The Nature of Code for Cinder

November 8, 2013

Last year, Daniel Shiffman released The Nature of Code, a book that explores and explains how to simulate systems that appear in nature using processing. In the intro of the book, he made a declaration to anyone that cared to contribute to convert all of the examples in the book into other relevant languages that might be useful to people, be it flash, javascript, openframeworks, etc. I took this as a chance to learn the principles taught in the book and convert everything to Cinder.

I’m still working on it in my spare time, but I’ve made some progress. You can check out the first 4 chapters on github. I hope to have the next chapter done in December. Enjoy.

And if you haven’t checked it out yet, take a look at The Nature of Code. Buy the ebook or print copy. Whatever. Dan does a great job breaking down the principles that are necessary to simulating these different systems in a way that’s accessible and makes you actually feel kind of smart. It’s quite great.

Cinder Kaleidoscope Tutorial on Creative Applications

October 17, 2013

Cinder Kaleidoscope

My first (and hopefully not last) article was published on creativeapplications.net this morning. It’s a walkthrough of a sample that I created that’s included in Cinder 0.8.5+ and describes that math that goes into creating a kaleidoscope animation effect using instagram photos as well as explains the Cinder features that were used to put it all together.

The article can be found here. To check out the sample, download Cinder and take a look at the kaleidoscope sample.

I hope to do more tutorials and walkthroughs in the future, so if there’s anything any of you out there want to know how to do, please let me know.

Cinder – Begin Creative Coding Book Review

May 9, 2013

cinder book review

I recently got my digital hands on a review copy of Packt Publishing’s new book Cinder – Begin Creative Coding by Krisjanis Rijnieks, the first of what will hopefully be many books centered around Cinder.

The book begins with a brief description of what creative coding is and eases into how Cinder fits into the equation. Before jumping into any actual code examples, the author does his due diligence and walks through how to get Cinder downloaded and set up on both OSX and Windows, showing how easy it is with the release version of Cinder. To get your first glimpse into seeing Cinder in action, the book guides you through some of the included samples. It’s an exercise that every first time Cinder user should go through anyway and continues to be a good resource when playing with a feature for the first time.

Flash to Cinder – Timed Event Loops

September 2, 2012

This is the first tutorial in a series designed to help Flash developers transfer their skills to the C++ creative coding framework Cinder. I’ll provide links to sample code at the end of the post. There’s a lot to learn, so lets get started.

Timing events to happen in a repeating loop is a common technique used in games and applications. It’s commonly used in games when for instance, you want a missile to attack you’re hero every 2 seconds or in an application when you want to remind the user where to click if they haven’t touched anything in a few minutes. I recently used a timed event loop for an installation that required an image transition every 30 seconds.

Hey Flash Devs, Let’s Play With Cinder!

August 22, 2012

flinder

I’m about to start putting together a series of short tutorials dedicated to helping Flash devs get up to speed with using Cinder. Since there seems to be a wave of Flash developers making this move, I wanted to share some useful bits of code that are a result of research that I’ve done myself and put together into something that someone else might find useful. Cinder can be an intimidating environment to get going with, especially if you’ve never touched C++ at all before (as was my experience). My hope is to try and take some of the intimidation out of the process and maybe even save some of you some time so that you can go ahead and start using those flash skills to make some cool shit in Cinder too.

If anyone has requests for things you’d like to know how to do with Cinder, let me know. I hope to put one of these out every couple of weeks. The first one should be out shortly.

InstaScope Roofies Installation

July 6, 2012

InstaScope kaleidoscope

I’d like to share a nifty little project that we just completed for our first roofies party of the summer here at TBG. We’re calling it InstaScope. InstaScope is an installation that was made to entice partygoers to take photos with instagram so that they can feed the live kaleidoscope that was being projected right there at the party. All they had to do was tag their photo with “#TBGRoofies”.

PathFitter Block for Cinder

May 31, 2012

PathFitter Screenshot

I created and released my first cinder block and wanted to put it out there to see if it’s useful to anyone else.
https://github.com/gregkepler/CinderPathFitter

What it does is simplifies and returns a smoothed out, simplified Path2d object based on a vector of Vec2fs that you pass to it. It uses the same algorithm that paperjs uses, but c++-ified. It’s a slightly modified version of An Algorithm for Automatically Fitting Digitized Curves from “Graphic Gems.”

There are 2 samples in there.

  • PathSimplification: Drag to draw a line on the screen. Once the line is finished, it analyzes and smooths out the line, letting you know how many lines you saved. It’s based on this paperjs example.
  • ContinuousPath: Analyzes and smooths a path as you draw it. Could be good for making a drawing application.

April 2012 Update

April 27, 2012

As the year rolls along and I continue learning and exploring new things, I’ve come to realize that my initial challenge of creating a complete project each month isn’t working. It’s not for a lack of wanting to do it or lack of time really, but more in that it’s not conducive to allowing me to explore everything that I want to explore. There could be projects that only take a week to put together, while others may take months. Trying to fit it into a 1 month limit doesn’t make sense for me anymore. Especially when a large chunk of my time may be spent learning the next thing, such as the last 6 weeks or so devoted to just learning C++. No projects are coming out in the that time on top of learning a new language.