— creating gif from mov with ffmpeg and gifsicle

ffmpeg -i in.mov -s 640x360 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=6 > out.gif

— Grasshopper -> TouchDesigner OSC Bridge for Polygon Mesh Geometry

A proof-of-concept patch that sends polygon from Grasshopper in realtime to TouchDesigner via OSC.

Grasshopper Sender

TouchDesigner Receiver

Source hosted on github.

download as .zip

— Animation w/Processing Workshop

— cinder + touchdesigner

Performative Fluid from gabriel dunne on Vimeo

created with: Cinder, TouchDesigner
source code: github.com/quilime/Cinder-TouchDesigner-TOP
audio: Vatica Dahlia - The Chalice

— Generate Semitones

my $m = 2 ** (1/12);
foreach my $s (0..12) {
    print int(0.5 + 1000 * $m ** $s-1000), "\n";

semitone - fine
0  - 0 
1  - 59 
2  - 122 
3  - 189 
4  - 260 
5  - 335 
6  - 414 
7  - 498 
8  - 587 
9  - 682 
10 - 782 
11 - 888 
12 - 1000


— vatica process

— STE-26

— STE-24

— Square Root of Wah

— Side-A

— count words in html file with python


import nltk
import string
from urllib import urlopen
from itertools import imap

url = "http://google.com"
html = urlopen(url).read()
text = nltk.clean_html(html)
text_noPunc = text.translate(string.maketrans("",""), string.punctuation)
words = text_noPunc.split()
max_word_len = max(imap(len, words))
vocabulary = nltk.probability.FreqDist(words)

for word in vocabulary:
    print word,
    print ' ' * (max_word_len + 5 - word.__len__()),
    print str(vocabulary[word])

Using NTLK.

Gist on Github.

— modulations 2012

Live visuals. Music Performer: Chris Carlson @ CCRMA Modulations 2012

this visual set was based on live-coding experiments with non-periodic tiling patterns. I'm still fascinated with the forms. Towards the end of the night I started using color.

visual software created with: audio-shadertoy

for this setup, the live audio was analyzed by ChucK through the built-in mic on my macbook air. the ChucK script routes osc to Node, and the client receives via web sockets.

because osx-style full-screen multi-monitor support is completely broken in OSX Lion, we couldn't use chrome. so we stripped out all the chrome-only webaudioapi stuff, and replaced it with an osc receiver. This allowed us to analyze the audio with an external interface and use any browser that supports webgl canvas, and does multi-monitory fullscreen correctly on osx. we ended up using firefox.

live-audio branch with float-sliders ui [warning:totally hacky] : http://github.com/quilime/audio-shadertoy/tree/live-audio-ff-datgui

— studio pano

studio panorama taken by Ryan Alexander

— temple

— DualBoot Archlinux/Windows7 Installation

Documentation of the process of installing archlinux and Windows 7 in a dual-boot configuration.

System Specs

  • AMD X2 dual-core processor, running at 2.8 ghz, circa 2002
  • ASUS ATX motherboard
  • 2 gigs of ram
  • 100gb drive
  • nvidia gtx 550 ti graphics card
  • linksys wmp54g wireless pci network card
  • 550w power supply

Installing Windows

Windows was installed from a USB stick using Microsoft's Windows 7 USB/DVD tool. It's required to create this key from a Windows 7 system. Boot with the USB drive, then install Windows on the drive in a single partition. Windows also creates a System Reserved partition for itself. Once installed, via Start Menu > Administrative Tools > Computer Management > Disk Manamagent, select 'Shrink Partition' on the main Windows parition to create another partition for Arch. The default value for the shrink is 50%, so for my setup the value for the new disk size was ~50GB, which was ideal.

Note about this install. I have an old Linksys (Cysco) WMP54G Wireless PCI Card. Drivers from Linksys/Cysco's website didn't work, but following this blog post, the generic RALink drivers worked great.

Installing Archlinux

I downloading the Core Image via torrent from http://www.archlinux.org/download/. This ISO includes all core packages so the system doesn't need to be online to install.

Once downloaded, I followed the notes on how to create a bootable ISO onto another USB drive with yet another machine. There are also numerous free tools available to make a bootable ISO on Windows. After booting into Arch with the USB stick, boot into Arch, and type:


The installation article on the archwiki is an excellent resource.

Disk Partitions

It's pretty straight forward until the drive partitions. My 100GB drive can only support 4 logical partitions, so the rest have to be Logical. Note: The numbers are out of order, because I used Logical partitions for everything except for the Windows partitions and /home. Logical partitions end up being counted last in the partition table, but I made my /home folder LAST so I could use the up the remaining space on the drive. You'll also need to set the /boot partition's 'bootable' flag to true.

• sda1
    Windows 7 System Reserved
• sda2
    Windows 7
• sda5
    /boot - 100MB is enough
• sda6
    / - about 25GB is appropriate
• sda7
    swap - between 1024MB and 4096MB
• sda4
    /home - use rest of hard drive

Some of these, namely boot, swap, and home, are optional.

Select Packages

At minimum, you'll need the core packages that are already selected. I also included certain key packages such as OpenSSH. Basically, include any packages you need for internet connectivity, as everything else will be updated from the net.

Configure System

Configure system does multiple things, including setting the root password, network settings, and some other configuration tools. Here's a reference of where Arch installs all the base config files for the system.

/etc/rc.conf                    system config
/etc/fstab                      filesystem mountpoints
/etc/mkinitcpio.conf            initramfs config
/etc/modprobe.d/modprobe.conf   kernel modules
/etc/resolv.conf                dns servers
/etc/hosts                      network hosts
/etc/locale.get                 glibc locals
/etc/pacman.conf                pacman.confg
/etc/pacman.d/mirrorlist        pacman mirror list

You should edit any of these files that are specific to your system. At minimum I enabled my network card in rc.conf.

You'll also need to enable at least one mirror in pacman.d/mirrorlist if you plan to update the system or download new packages.


Install Bootloader will install and help you configure the bootloader you selected in the Select Packages stage (GRUB, in my case). After double-checking your bootloader configuration, you'll be prompted for a disk to install the loader to. You should install GRUB to the MBR of the installation disk, in this case sda1.

Finalizing Installation

Once installed, exit the installer, remove the USB, type reboot in the command line, and the system will reboot. You'll boot into a login screen, which you can login with via root.

You can create new users interactively with useradd.

You can install/update packages with Arch's package manager, pacman.

Before installing any packages, sync the package list with:

pacman --sync --refresh

To add a new package (vim, in this case), type:

pacman -S vim

next: getting node and a webserver installed.

— print formatted JSON, XML from osx command line

Working with various interfaces that output json or xml results in lots of situations where you have a single-line, unformatted output. Here's a quick way to format json, xml from the CLI.

via the command line:

format json

cat unformatted.json | python -m json.tool

format json from clipboard

pbpaste | python -m json.tool

format xml from clipboard

pbpaste | xmllint --format -
xmllint is part of libxml2 and installed by default on OSX. Be aware that xmllint cleans up XML as well as formatting it, ocassionally modifying the output.

for all above examples, you can pipe back to the clipboard with | pbcopy at the end of the command, or output to a file with > output.json or > output.xml.

— command line audio on OSX

Since there is no equivilent to /dev/dsp or /dev/audio on OSX, you need to install an alternative like sox.

Install sox by either downloading the OSX binary from http://sox.sourceforge.net/ or install homebrew, and then install sox with brew install sox


cat audio from /dev/urandom/ :

cat /dev/urandom | sox -traw -r44100 -b16 -u - -tcoreaudio

audio from an executable

cat > test.c
main(t) {
  for( t = 0;;t++)
    putchar( t * ((( t >> 12 ) | (t >> 8)) & (63& (t >> 4 ))));
gcc test.c -o test
./test | sox -traw -r8000 -b8 -u - -tcoreaudio


— sun

— Water Is Life

near Quotar Minar in Dadabari.

— beg

— dushera

— alphabet




— islands

Imagine that every man's mind is an island, surrounded by ocean. Each seems isolated, yet in reality all are linked by the bedrock from which they spring. If the ocean were to vanish, that would be the end of the islands. They would all be part of one continent, but their individuality would be gone.

—"The Inspector" Overlord. Childhoods End, Arthur C. Clark. p.176

— childhoods end

The case of India is particularly instructive. The main difference between us and the British in India was that they had no real motives for going there—no conscious objectives, that is, except such trivial and temporary ones as trade or hostility to other European powers. They found themselves possessors of an empire before they knew what to do with it, and were never really happy until they had got rid of it again.

—"The Inspector" Overlord. Childhoods End, Arthur C. Clark. p.161

— dreams

My dreams have been incredibly vivid. probably due to the heat. sleeping at odd hours. been working in the studio most of the day at Vishal's house, so I haven't been going out as much as I would like. Very hot outside.

↑ index