Showing posts with label code. Show all posts
Showing posts with label code. Show all posts

Sunday, April 29, 2007

Tangible Programming in the Classroom


Tern: Wooden blocks shaped like jigsaw puzzle pieces

Created by Michael Horn and Robert J.K. Jacob at Tufts University, Tern is a tangible programming language for middle school and late elementary school students. Children connect the tailored wooden blocks to form physical computer programs, which may include action commands, loops, branches, and subroutines.

Download Tern's paper for Chi'07


Quetzal

Prior to designing Tern, the authors created Quetzal (pronounced ket-sal), a "tangible programming language designed for children and novice programmers to control LEGO MINDSTORMS robots. It consists of over one hundred interlocking tiles representing flow-of-control structures, actions, and data. Programmers arrange and connect these tiles to define algorithms which can include loops, branches, and concurrent execution."

Also Oren Zuckerman from the MIT Media Lab created Systems Thinking Blocks for children to model and simulate dynamic systems.


Flow Blocks for children "to create 3D structures in space, that look like common structures in life"

Friday, March 09, 2007

Digital marks

A little bit on digital marks, I selected a variety of them.

The semacode, a two dimensional code that encodes a URL. The picture below is the semacode of architectradure. Thank you Michael Surtees for the link! This tag embed the URL address of my blog, that can be read by your cell phone and send you to its page. I guess it avoids typing in the URL and you can rapidly go through a series of web sites using the respective tags.


semacode of architectradure

It is especially useful for combining physical space to digital content. The Semacode's Software Development Kit has is developed for ubiquitous computing by creating visual tags for objects and contexts, and read them using a mobile camera phone. The physical Wikipedia called Semapedia , created by Alexis Rondeau and Stan Wiechers, allows you to add place tags on places and things to link them to the relevant Wikipedia articles.


trash can with a wikipedia tag

Semacode technical paper

Urban tapestries allows public mapping and sharing by combining mobile and internet technologies with geographic information systems. This system was linked to Natalie Jeremijenko's famous feral robots -open source robots for investigating contaminated urban sites- and called Robotic Feral Public Authoring: "Adding the sensor readings to online mapping tools, such as Urban Tapestries, suddenly brings the relationships between environment and home vividly to life. It enables people to feel they can learn about their environment and have the evidence to do something about it"

Yellow Arrow allows a community to tag places using arrows. You can post a message using the arrow and anyone could retrieve it using their cell phone. Another method to link digital content to a physical place. The community of yellow arrow is quite big. Their blog.



Elens allows anyone to create talking landmarks. Developed by the MIT Media Lab it allows anyone to tag a place by adding a sticker on a physical location, sticker that can later be scanned by a cell phone, in this case the Motorola A1000.

M-views developed at the MIT media lab in the interactive cinema group -media fabrics- with Glorianna Davenport, explores the "ideas, methods, and culture of mobile cinema, which is experienced in temporal and spatial narrative segments that can be delivered on context-aware mobile devices."

In 2002, I researched with Glorianna Davenport on technologies to allow digital information to communicate with the physical space. I worked on Passing Glances a system that enables users to create ambient urban interludes through the use of SMS text messages. Associated graphics and storytelling were projected in the urban space.
CHI'04 paper
Enarrative5 2003 paper

With these tags, the physical space is tagged to the digital space. One can think the other way around and tag the virtual space with physical content. That is what Josh Lifton told me he was working on the other day. Josh created a plug sensor/actuator network, called the dual reality lab, that links the MIT Media Laboratory space to a virtual lab space in the Second Life online virtual world.


Location of the MIT Media Laboratory in Second Life

More info technical about the plug

Sunday, March 04, 2007

my body is a hypertext

I love this concept of Yasmine Abbas



project number . 20050816
project title . shotcode tattoo
medium . ink or washable tattoo
my identity has shrunk to my skin...
<< I link therefore I am >> says WJM
my tattoo is no more a barcode that one scans
for revealing the identity of a product
the extension of my body is a url
we exist because of the envelope, the image
which is drawn, written, or projected onto it
our skin is a state of mind, a habitat, and our identity
the last private space?
my body is a hypertext

Also available for 5$, washable bar code tatoos - Via needled

Wednesday, February 28, 2007

Issey Miyake by Etienne Mineur



Stunning interactive graphic piece for Issey Miyake by Etienne Mineur. Jean-Jacques Birgé talks about la derniere valse of this work.



Spring summer 2007 women collection.
Spring summer 2007 men collection.
Collections designed by Naoki Takizawa for Issey Miyake.

Friday, February 16, 2007

Tested and approved: Csound is awesome



Adam Boulanger gave Aurelius Prochazka and I a three hours introductory tutorial on csound.

Csound is a programming language -originally witten in C, ref. its name- by Barry Vercoe at MIT Media Lab. Synthesized sounds that come out of csound are elegant and allow anyone with a computer to freely compose sounds. I prefer it to reason for its infinite personal potentials.

Composer Richard Boulanger edited the famous Csound book. BT on the other end revisited csound taught by Dr Boulanger for his Binary Universe album.

Saying that, all I can say is tested and approved and I can share some of the notes I took, as I think it can help anyone start with the Csound software and compose music.

  • Install the csound environment from sourceforge to install the CsoundLib framework.
  • If you have a mac, install Mac sound -for some reason Csound 5 did not work on my intel mac-
  • Open Mac Csound. Save the file that automatically opened.
  • Any name written in "blue" are called opcode, they are functions and clic " apple + ' " to have the help file of any of these opcode. The help file gives you the usual syntax and examples for each opcode.
  • A specific rate is defined with k, and a. The rest of the label can be anything descriptive, but the letter 'k' and 'a' will be understood by the system as the rate you want.
  • you can test out the following. Add to the orchestra window (orc)
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1
    instr 1
    kamp = 10000
    kcps = 220
    ifn = 1
    a1 oscil kamp, kcps, ifn
    out a1
    endin
  • add to the score window (sco)
    ; Table #1, a sine wave table with a small amount of data.
    f 1 0 4096 10 1

    ; Play Instrument #1, the basic oscillator, for
    ; two seconds. This should sound relatively rough.
    i 1 0 2

    e

  • If you press the icon, your piece will play back.

  • in the score window (sro) you wrote: "f 1 0 4096 10 1 "
    10 is the gene routine number. 4096, a power of two. it drastically changes the sound if 4096 becomes 8!
    In file:///Library/Frameworks/CsoundLib.framework/Versions/5.1/Resources/Manual/ScoreGenRef.html
    the gene routines are explained.

  • In the (sro) window you also wrote: "i 1 0 2"
    i: means instrument
    1: refered to the instrument 1 from the orchestra window
    0: start
    2: duration in seconds
    3: frequency

    (then you can add different instruments, that overlap in time or start at different times etc...)

  • Adam mentioned the indispensable opcodes to try out:
    . foscil (A basic frequency modulated oscillator.)
    . grain (Generates granular synthesis textures)
    . grain2 (Easy-to-use granular synthesis texture generator.)
    . soundin (Reads audio data from an external device or stream)
    . physical modeling instrument: pluck (Produces a naturally decaying plucked string or drum sound.)

  • Finally a good key ressource is the first chapter of the Csound book by Dr. Richard Boulanger, Introduction to Sound Design in Csound. It can be downloaded for free from MIT Press. Also the Csound web site community

    Good luck!

  • Monday, April 10, 2006

    Processing point of view

    I have tried processing by entering a few lines of script into the processing window.




    processing en essais

    For instance I wrote the following script:
    size(600, 600);
    background(50,50,50);
    for(int x=0; x<600; x="x+7){" y="0;" r =" (int)(40*(log(x)));" g =" (int)(30*(log(y)));" b =" (int)(r*g" gr =" (r"> 128){
    stroke(r, g, b);
    rect(r,g, 1, 8);
    }
    else{
    stroke(50,0,0);
    rect(x,y, 10, 91);
    }

    }
    }

    and processing has generated the following graphic:



    Rendez-vous creation
    has selected a few images I made with processing.

    In digital graphics

    Monday, March 13, 2006

    Architectural computing



    This semester I am studying Advanced Studies in Architectural Computing : Harvard Design School, Spring 2006 taught by Kostas Terzidis

    Description

    The course is an in-depth study into the theories, processes, and structures of computing in architecture. It will seek to develop design projects that will illustrate the applicability, value, and potential of computing in addressing, solving, or (re)defining architectural problems. The purpose is to invent computational schemes that encapsulate the processes that lead to the generation of buildings and structures. Furthermore, the course will seek to define, explore, and critically evaluate the aesthetics of computing not only as a form of artistic expression but also as a means for architectural poetics.


    For the first assignment we had to test script editor from the Maya software and create a building under particular conditions:
    Site: Flat/urban context: square (110’ x 110’) on a corner of two streets
    Program: 200-units 80% made of
    50 effic. ( 400 sqft)
    100 1-bed ( 900 sqft)
    50 2-bed (1,600 sqft)
    Circulation 20%
    Constraints: For each unit facing the street we get one point. For each floor we go up we loose 10 points. Satisfying the above requirements for the lowest cost, create a structure(s) using any (or combinations) of the following algorithms: stochastic search, hybridization, cellular automata, multi-Booleans, genetic.

    First, as shown in the following code and model, we have resolved the problem by creating the units with no overlap between one another (we did a scholastic search on the units location):



    We tested the following variations by modifying our previous Maya script:



    We decided that our final model will
    - be a dynamic building
    - give the impression of a frozen moment
    - contrast with still surrounding buildings
    - offer a street view for each unit
    - have the circulation and ventilation in the back

    The following diagram features the organization of one floor:



    Our final model ' la Tour Chatouilleuse' is made out of the following Maya Script

    for($l=0; $l<25; i="0;" name = "floor" rangex =" 4;" rangey =" 5;" sv="0;" rx =" rand(-$rangex,$rangex);" ry =" rand(-$rangey,$rangey);" overlap =" false;" j="0;" name = "floor" px =" eval(" py =" eval(" diffx =" abs((float)($rx-$px));" diffy =" abs((float)($ry-$py));" overlap =" true;" overlap="=">100){print("not found\n"); break ;} } }; select -all; group; rotate 0 0 3deg; move -r 0 0 -1; };



    By Cati in Architectural computing