Skip to content


Cinder – Begin Creative Coding from Krisjanis – CS450 students here

I've met Kris while I was studying in Aalto's Helsinki Media Lab in the Spring of 2012. I learned that he was writing a book on Cinder while I was there and now I'm happy to see that it's released. He has helped me clear something up on a C++ project before and I am sure he will help others clear a lot up with the book, I see that he has the same tone going with the book which is very approachable.

The author explains why one would pick Cinder over OF or any other framework without talking other frameworks down and starts on a very important topic; downloading the framework, installing the dependencies and running some samples on both Windows and Mac OS. I know a lot of people turn around and quit when it comes to setting up frameworks.

Who is this book for?

If you have some (you understand all the basic examples) experience with Processing and want something else that can offer more horsepower when needed.

If you are comfortable with C++ and want to have some graphics/audio/interaction programming fun and don't want to learn some other language or wrapper.

If you just want to see what Cinder is like and don't know where to start

The book will not challenge an experienced programmer but since it's audience is mostly designers and artists, I am sure it will be "challenging enough" for most.

Chapter Review:

Chapter 1-3: Gets you up and running with Cinder as well as a brief introduction on the framework by going over the samples and explaining what's going on when necessary.

Chapter 4: This is for drawing basic shapes.

Chapter 5: Teaches you how to use image assets in your projects.

Chapter 6: How to move things on screen. This is probably why you are here.

Chapter 7: Teaches you Post Processing effects and animating them. There's pixel level access going on here which would be very useful for a whole lot of purposes, Kris does a great job explaining this intermediate topic.

Chapter 8: 3D begins here. depth sorting, states, Cinder primitives, lights.

Chapter 9: How to load audio files, alter them in real time, using audio data to alter graphics and live sound

Chapter 10: User interaction and UI Events, keyboard events, mouse movement and click events, file drop event, and applying these to a basic application.

Final Note: I had absolutely no experience with Cinder before this book, I have been exposed to it but never used it myself. Now, I feel like I would pick Cinder for my next project over Processing or OpenFrameworks (not that it is better, I feel comfortable enough with the framework). Do not be fooled by the book's size, it's a sign that it cuts through the excrement to get to work, nothing else. I am giving this book a solid 4, even a 4.5 if it was possible and would give it a 5 if it went a bit into GLSL, but than again, it's not entirely necessary for a book aimed at beginner-intermediate level.


Posted in Uncategorized.


Coloodle for Android

Just released my first Android application Coloodle the other day. It's a tiny little application that lets you sketch in multi-touch mode. Haven't tested it on a tablet yet but on the phone it works with 5+ fingers so it should work on a tablet for mulitple users as well. By using a stroke on each sprite drawn and altering the size with the pressure, you get a 3d look to your sketches. It is not meant to paint masterpieces - it is meant for doodling and it gets the job done :)

Used AIR with pure Acionscript 3.0 on Flash Develop for development. That's a whole another post ;) An adb logcat tutorial should be around soon as well as other AIR related tips.

Features:

Can save images

Updates the Android Gallery with it's folder each time you save (you don't have to hunt for the files in your sdcard)

Draws the vector sprites on a bitmap so you can have infinite amount of pixels with no performance hit

User can change transparency

User can change brush size

User can change fill and stroke size as well as color for each

User can change strokeweight

Free watermark on all saved images

It is free (supported with the occasional ad in the options menu)

 

Here be the download link

 

Here are some doodles made while testing the app to give an idea of the outcome:

 

Posted in Android, Interaction, Programming.

Tagged with , .


Programming your Arduino with a DKU-5 cable

We are going to make an FTDI cable for whatever reason you might need one, I will use it to program my own ATMEGA microcontrollers without an arduino board. The Arduino has a USB adapter on it bu ATMEGAs do not come with that, and you need to somehow connect those to the computer - this is it. You might have seen them before, Sparkfun carries them, as well as LadyAda. The cost is a bit high and shipping takes time, and most importantly it's no fun compared to making your own.

Materials needed:

DKU-5 cable (CA42 also works, I believe Prolific makes those)

Multimeter

4 pin male header

Something to cut and strip wires

Soldering materials (iron, solder, wick...)

DKU-5 Connectivity Adapter Cable

DKU-5 is an old Nokia usb cable adapter and has the chip we want inside, no point in going into details right now about that. You can find the cable in ebay, dealextreme or local stores. I got mine from a local store. It should cost around $3 a piece. It's phone end has 6pins and the other end is the USB.

Connect the cable to your computer and find the right drivers for it, it should show up under LPT&COM ports with a port number such as USB Connectivity Adapter COM19. COM19 is the Serial Port you will choose in your Arduino IDE while uploading your programs, note that down as well.

We need to identify which pin is RX, TX, 3.3V (there are also 5V ones) and GND so we cut cable off near the phone end and strip the 6 wires inside it. Now, test the connectivity with a multimeter on those pins and find out which cable goes to what pin. Write those down. If you have a Pinout sheet for the cable, you already have which color cable is RX, TX, 3.3V/5V and GND.

off with it's head

set to buzzer

If not, we move on to the next step where we strip the chip on the USB end. Carefully cut away the plastic casing and strip the horrible dark gray plastic off the chip on the USB end.

 

You will find a PCB with the chip on it. On the PCB, where the cables are connected, you can see the pins labeled as RX, TX, 3.3V/5V and GND. If you are lucky, you'll also fin a DTR cable which goes to your Arduino's reset pin, saving you from manually pressing the reset button everytime you upload a new program.

RX, TX and 3.3V

 

Now, considering you did not have a pinout of the cable, you can identify which color cable is what, write those down somewhere and get a 4 pin header for soldering the wires on.

 

Solder the wires on your header and stick them on a breadboard. With some wires, connect the RX to your Arduino's RX, TX to your Arduino's TX, 3.3V/5V to your Arduino's 3.3V/5V and GND to your Arduino's GND.

hot glue over the chip

arduino setup

ignore the potentiometer

 

Launch your Arduino IDE, select the correct COM port & board and open up the Blink example so you do not need any LEDs to test it. The small LED on the Arduino board, next to the digital pin 13 marked as 'L' blinks each second if you upload this program. When uploading your program, push the reset button right after it compiles (it is hard to describe the timing, try different push delays if it doesn't work) and it should work.

 

Hope that helps :)

 

Posted in Hacking, Physical Computing, Tutorial.

Tagged with , , , , , , .


Navigable Space in Digital Environments (W.I.P.)

Lev Manovich's Navigable Space

Manovich suggests that computer games1 as well as bringing new aesthetic forms, they give rise to new aesthetics of navigation (Manovich, 2001). While Doom (Id Software, 1993) has the user running through a maze-like level in a fast pace Myst(Cyan,1993) allows the user to explore the world around her. Manovich points out that, these games place the user in a place in the story at the beginning of the game as well as in a spatial place. The user has to explore most of the game's environments before she can reach a narrative end, since the game goals are completed and the story is retold by navigating through the 3D space efficiently (solving puzzles, defeating monsters) rendering the storyworld and the gameworld intertwined, the navigable space being the glue between the two.

Murray's Digital Environments' Spatiality

According to Murray, one of the four properties of digital environments2 is spatiality(Murray, 1997). While traditional media can convery information that would represent an environment, only interactive, navigable spaces allow us to roam as we choose in these representations. The interactively navigable nature of space represented in digital environments sets it apart from the representations of space in other media by giving us a sense of being at a point in a particular space by responsing to our input accordingly.

The perception of events by the user is also different than other media. She suggests that in theater, the events are happening on stage and you, as the spectator, merely watch – while in interactive navigable spaces there is a more dramatically engaging spectacle, you make the events in the virtual world happen and they happen to you. This gives the navigation dramatic power. (Murray 1997)

Murray's Pleasures of Navigation

As Murray defined earlier as a characteristic of digital environments, spatial navigation can be pleasurable in-itself regardless on the contents of the said environments and the mechanics of the game that contains them. Intentional navigation, is a participatory pleasure just like the sport of orienteering where people traverse an area based on clues such as landmarks.

Murray identifies two different configurations for orienteering in electornic environments; the solvable maze and the tangled rhizome.

The Story in the Maze

The maze has a place in Greek mythology, Daedalus builds King Minos of Crete a Maze to contain the deadly Minotaur. Theseus is the hero in the story that slays the beast by succesfully navigating the maze. “The adventure maze embodies a classic fairy-tale narrative of danger and salvation. Its lasting appeal as both story and a game pattern derives from the melding of a cognitive problem (finding the path) with an emotionally symbollic pattern (facing what is frightening and unknown.) ” (Murray, 1997). The maze, Murrey says, is a road map for telling this story.

On electronic narratives, the maze is a space where you can interact with other characters and objects and if need be, you can retrace your steps back to a point where you missed something, like Ariadne's thread.3

The drawback of a maze structure in narrative environments is that “it moves the interactor toward a single solution, toward finding the way out. The desire for agency in digital environments makes us impatient when our options are so limited.”(Murray, 1997)

The Rapture of the Rhizome

Rhizomes4 are structures that any of it's points can be connected to any other point in it. This makes the stories that embody this structure solutionless. Murray suggests that the rhizome structure does not empower the user because of the fact that the user can not mark a lexia5 as read or mark a lexia so it can be accesed easily later in the reading process (Murray,1997). Despite the argument against the rhizome structure and the user's power over navigation, Murray suggests that these unsolvable mazes does have to potential to serve as an expressive structure:

“Walking through a rhizome one enacts a story of wandering, of being enticed in conflicting directions, of remaining always open to surprise, of feeling helpless to orient oneself or to find an exit, but the story is also oddly reassuring. In the rhizome, one is constantly threatened but also continuously enclosed. The fact that the plot will not resolve means that no irreparable loss will be suffered.” (Murray, 1997)

Murray differs games from stories as placing the user as the protagonist in the story and identifies a flow of plot that is embodied in game narratives. One of the points she identifies goes as:

  • “I encounter a world in pieces and assemble it into a coherent whole.”

By succesfully navigating through the environment and traversing one level after another, the user assembles a world in pieces into a coherent whole. This is much like constructing a story in one's mind from the given plot points.

 

 

 

1Computer games exemplfying the potential of new media's aesthetic power.

2Digital environment are in context of medium and not refer to spatial environments in this case.

3Ariadne's thread is what Theseus uses to navigate the maze where the Minotaur dwells in the Greek myth mentioned earlier.

4 “Rhizome” is used here as Deleuze defines it - “theory and research that allows for multiple, non-hierarchical entry and exit points in data representation and interpretation”(http://en.wikipedia.org/wiki/Rhizome_(philosophy) 

5 Barthes definition of lexia is a brief contiguous fragment – a reading unit.


Posted in Academic, Thesis.

Tagged with , , , , .