Sketchfab

I am exploring a web service called Sketchfab (https://sketchfab.com/) that allows users “to publish, share and embed interactive 3D models online in real-time without plugin.” This site is not for downloading 3D models but rather for displaying them online for portfolios, clients or fun.

It’s free to register, upload and embed and there are various monthly plans for professional use. One of the paid plans is offered for free to students in “partnered” institutions.

Node.js + Spacebrew = Works!

I connected the Node.js Spacebrew example (mentioned in the previous post) to a simple Processing sketch, to get a better idea of what the Node.js code is doing.

This is the bit of code that is responsible for esending the data to Spacebrew (in this case a string with a counter in it).

var i = 0;
setInterval(function(){
var newString = “You are “+i+” seconds older.”;
sb.send(“tick”, “string”, newString); // send string to spacebrew
i++;
}, 1000);

Here are the results!

Screen Shot 2013-04-10 at 10.54.25 AM

 

Node.js + Express + Spacebrew

For our Spatial Media class, we are learning Node.js (http://nodejs.org/) and using it to connect web-based inputs and outputs via Spacebrew (http://docs.spacebrew.cc/). I had a tricky time with it, mainly because I know nothing about servers, javascript, Node.js or the inner-workings of my cat’s mind… but that’s another story.

We were using code examples from from this github:
https://github.com/jefftimesten/SpatialMedia/tree/master/Week_08

Here are a few lessons I learned.

- In layman’s terms, Node.js is a way to use javascript to make efficient servers so you don’t have to run things like Apache. I’m still hazy on the server concept, but this article is a good start: http://en.wikipedia.org/wiki/Nodejs

- To install Node.js, go to http://nodejs.org/

- Node.js applications can be written/edited in any plain text editor (I used TextWrangler).

- The .js applications are compiled/run via Terminal. You must navigate into the appropriate folder and run the “app.js” or “server.js” (those are the common server app names) by entering the following command:
$ node app.js  Note: “$”  should not be typed into the terminal—it’s just a way to indicate something is a Terminal command.

- For the github examples used in our class, you need to install Express — a web application framework for Node.

- Node.js uses npm (Node Packaged Modules: https://npmjs.org/) to install “plugins” or “libraries” — the things that help it run.

- You can install Express locally (into the folder where your code lives so it only works for code in that folder) or globally (so after one installation Express will work for any file on the computer).

- To install locally (via Terminal), navigate into your folder and enter:
$ npm install express

- To install globally, enter: $ npm install -g npm  Note: If you are using a Mac and get errors with the above global install command, try adding “sudo” in front of it: $ sudo npm install -g express

- After installing Express, my node-spacebrew example didn’t run because I was missing a “ws” websocket Spacebrew uses (check out this article about websockets: http://en.wikipedia.org/wiki/WebSocket). To install the “ws” websocket via Terminal, enter $ npm install ws

- Once everything is installed, open Spacebrew by going here:
http://labatrockwell.github.io/spacebrew/admin/admin.html?server=sandbox.spacebrew.cc
I had trouble getting the file to run until Spacebrew was open

- Run the example in Terminal by entering: $ node app.js

- You should see your “publisher” appear in the Spacebrew window. I changed the name of my publisher to “It Works!” by opening the app.js file in TextWrangler and changing:
var name = “It works!”
var description = “Yuliya’s Node test!”;

Screen Shot 2013-04-09 at 7.41.44 AM

P.S. Thank you Andy Sigler for helping figure this out!

Camera: one on one (step 1)

step1_setup

To get a better handle on all the tools we covered in class, I combined TSPS facial tracking, oF, Spacebrew, Processing and Arduino (sounds messier than it actually was).

I combined the TSPS > oF and the oF > Spacebrew code we covered in class into an oF file that receives face recognition information from TSPS and sends a Boolean via Spacebrew. A processing sketch receives the Boolean from Spacebrew and passes the info to Arduino. For a simple proof of concept, the Arduino turned on a Red LED when a face was spotted and a Green LED if “the coast was clear”.

I could have communicated with TSPS via Processing directly, but the oF > Spacebrew > Processing > Arduino connection can be useful in the future, when I wish to connect oF Open CV or other powerful oF tools, with an Arduino.

Notice the LED (on the breadboard in the bottom of the video). The red one turns on when a face is visible to the camera. The green one turns on when the face is blocked.

Shadow Puppet Play

I am building a tool to teach kids (and eager adults) about the basics of storytelling. A participant will be able to combine characters, simple actions and environmental elements on a simple timeline and watch them play out in real time.

The experience will be rich with texture and lighting, giving the experience a homemade, old-time feel.

Below is the documentation of the first-stage build, that demonstrates the look and feel of the environment and characters.

You can create the characters by pressing buttons, lift them into the air and dangle their legs. The Processing source code can be downloaded from Github: https://github.com/yparshina/ITP_1st_semester/tree/master/shadow_puppets

NEXT STEPS:

1) Flush out the user experience and user interface roughly outlined in the sketch above:

  • The user should be able to tell a story on the timeline but still have the ability to interact with the characters on stage. How will this work?
  • What is the most intuitive timeline interaction?
  • What are the best actions? They have to be simple enough for the characters to act out programmatically in two-weeks of build time, clear enough for the user to understand from a symbol and fun enough to make an engaging play (I’m half-way there).
2) Implement the “XY coordinates & color combo” technique for better mouse selection of irregular shapes (trees, deer horns, etc).
3) Swap Processing generated bodies of characters for irregular PShapes
4) Complete environments
5) Build out the UI
6) Create a timeline
7) Program actions
8) Polish character behavior (both action and user driven)
9) Add one more character
10) Polish character motion (dangly legs should dangle better, add twitch ears and tails, add wings to the bird)

 

 

Fragmentations

This is an edit of some early tests for the Fragmentations project.

In my animation work, I often use After Effects to distort reality until it is broken down into lights and patterns. I decided to take this technique a step further and bring it into real-time.

In Fragmentations, I create Processing sketches that break down a live web-cam feed into abstract representations. I then film the result through distorting mediums such as glass vessels filled with various translucent liquids. The final product is a cycle of reality, transformed by technology, transformed by reality.

Below are video documentations of the actual Processing sketches. The files can be downloaded from Github: https://github.com/yparshina/fragmentations
 


 

Where Animals Live

I am working on a portable exhibit that teaches kids ages 4 to 7 about the places and environments animals live in through a physical exploration of the world map.

The activity takes place on a 20′ x 12′ soft mat (similar to the padded mats in a school gym) with the world map depicted on it.  It can be set up on any wide, flat surface such as a park, a school yard or a gym. Participants choose from a wide selection of familiar animals and use clues to place them in the correct spot on the map.

The experience begins at the Biodiversity Tent, where a docent familiarizes the participants with the exhibit and supplies them with animals. The Tent also serves as an educational corner, with additional recourses and activities.

On the map, each continent has a different color and is marked with the pattern of various environments.

The creatures are flat, brightly-colored shapes made of wood. One side depicts the animal while the other gives clues about their location on the map with continent color and environment pattern.

When an animal is placed in the right spot on the map, the anima’s sound is played on a speaker embedded in the mat and the animal vibrates in the kid’s hand.

A wrong placement triggers no response in hope that the sound and tactile feedback experienced by the successful explorers will encourage the rest to reach their goal instead of settling for random noise making.

Additional exploration incentives include a checklist of successfully placed animals that can be exchanged at the Biodiversity Tent for a badge (such as “most mammals” or “greatest continent explorer” or “Savanna Master” etc.) and a timed group activity or team competition based on specific animal assignments.

“Where Animals Live” is a modular, portable exhibit that can support various biodiversity curriculi.

 

Bubbles Final Presentation

In this presentation, our team discusses the creation process of the fuzzy responsive robot named Bubbles. Take a look at earlier posts for a fuller description of the project and technical breakdowns.

You can view a brief interaction with the creature! The orange tentacles are a bit under the weather but the sound is working!