/Fnk

Fnk was a visual programming environment using a dataflow approach for the analysis, processing and synthesis of image, sound and other data in real-time. It aimed to be an easy and fun way to create multimedia experiences on a browser, or as a standalone desktop application.

Fnk was created as part of the graduation thesis for my Digital Interface Design bachelor degree at Senac São Paulo. In practice, it was as a node-based visual representation of a functional language: within the Fnk environment, instead of writing code, one would connect nodes to perform live data transformations, and see the results flowing in real time.

Also impportantly, in Fnk there was no difference between run-time and design-time: data flows constantly, even while the nodes are being assembled. This invites experimentation, and, I believe, makes the process of development fun.

Many of the concepts used by Fnk are inspired in other environments such as Max/Jitter, Pure Data, and vvvv. At the time, bringing those to the web was pretty novel; today, several similar such platforms exist, and node-based editores are much more common as "scripting" layers for existing platforms than they used to be.

The project didn't last very long: the technology used (Adobe AIR) got somewhat outdated fast, I didn't have time to expand its standard library of built-in nodes, nor to add many features that I had planned.

Still, this was an amazing project to create. It was one of the most creatively rewarding and fun projects I've ever worked on, and today, more than a decade later, I'm still in awe of the results.

Date

2008

Type

Web, Application

Platforms

Linux, macOS, Windows

Programming Language

ActionScript 3

Role

Solo Developer

Programming Library

Adobe AIR

Previews

Media

Basic interface (build 2023)
Creating and linking nodes (build 2592)
Building math-based animation (build 2760)
Building colored circles (build 2903)
Building snowflakes (build 3093)
Building an image painter (build 3463)
Video camera processing (build 3631)
Audio analysis (build 3654)