Surfnet logo

C4: A Creative-Coding API for Media, Interaction and Animation

This is an ongoing project.


Although  there  has  been  widespread  proliferation  of creative-coding  programming  languages,  the  design  of many toolkits  and  application  programming  interfaces (APIs)  for  expression  and  interactivity  do  not  take  full advantages  of the  unique  space  of  mobile  multitouch devices.  In  designing  a  new  API  for  this  space  we  first consider  five  major problem  spaces  and  present  an architecture that  attempts  to  address  these  to  move  beyond the  low-level manipulation  of  graphics  giving  first-class status to media objects.

We present the architecture and design of a new API, called C4,  that  takes  advantage  of  Objective-C,  a  powerful  yet more  complicated  lower-level  language,  while  remaining simple  and  easy  to  use. We have also  designed  this  API in such  a  way  that  the  software  applications  that  can  be produced  are  efficient  and  light  on  system  resources, culminating  in  a  prototyping  language  suited  for  the rapid development  of  expressive  mobile  applications.  The  API clearly  presents  designs  for  a set  of objects  that are  tightly integrated with  multitouch  capabilities of hardware devices. C4 allows  the programmer to  work with media as first-class objects;  it  also  provides  techniques  for  easily  integrating touch  and  gestural  interaction,  as  well  as  rich  animations, into expressive interfaces.

To illustrate C4 we present simple concrete examples of the API,  a  comparison  of  alternative  implementation  options,  performance  benchmarks,  and  two  interactive  artworks developed  by  independent  artists.  We  also  discuss observations of C4  as it was  used  during  workshops and  an extended 4-week residency.



An example interaction with a movie in C4. Two-finger tap (left) will pause the movie, single-finger tap (middle) will play the movie, and a single-finger drag will displace the movie.