Variable.

A software platform for turning smart objects into agents through behavior.

Variable is a software platform and framework for designing behavior, imbuing traits, and facilitating object learning in interactive environments and artifacts.

By offering a novel paradigm of programming control, the user is encouraged to think of the interactions and behavioral traits that can be attributed to the objects around them. The system abstracts low level details to allow the user to concentrate on the interaction and qualities of the environment.

The thesis won the Digital Design prize from the Harvard Graduate School of Design in 2014.


Role: Concept, Strategy, UI/UX, Motion Design,Interface Coding, Physical Computing, Product Design, Fabrication
Date: 2014
Client: Harvard GSD Thesis
Team: Michael Degen < Space Craft >

This thesis focuses on the design and execution of a software platform named Variable. Variable is an application for designing and manipulating behaviors in physical objects. Through the development and implementation of the platform and its specific approach to UI design, we create a new conceptual framework through which designers can think about how they create interactive systems and behavior. This system allows designers to more easily implement non-deterministic behavior, growth, and learning in an object while also providing the means of deployment through an arduino microprocessor. Many interactive projects that exist today work on a very responsive approach. If the user moves his hand the object actuates itself in a certain way. This one-to-one response is entertaining, but its timespan of interaction is very short. After a short time you have learned much of what it can do and it has become predictable. These types of projects often get installed in museums and more transitory public spaces that encourage a short length of interaction. However, in an object or architectural environment that seeks to become a part of our daily lives, a longer span of interaction is necessary. This is where non-deterministic behaviors come in. These types of algorithms can change over time, exhibiting a different response to stimuli as it evolves. This ability to change over time is what allows for an interaction to keep the attention span of the user and maintain its relevance over time.

The primary mechanisms through which Variable achieves this aim is through careful abstraction of the sensor data. Just as Grasshopper developed a system of abstraction to allow designers to elevate their thinking of geometry creation from strict coding practices to establishing design relationships with geometry, Variable seeks to abstract behavior design in objects through the six basic emotions. The current workflow for interactive projects involves a very engineering oriented process of object response creation through traditional coding environments and minimal processing of sensor data and actuation commands. Variable seeks to alleviate this problem through abstracting the data in the system, allowing the user to shift their focus to the interaction and the qualities of the actuation via visual cues.

Through approaches such as neural networks, we allow the objects to evolve over time in response to input from the environment and the user. This data is then fed into the behavior tree which is acting as the higher level representation of your objects behavior. This enables the user to very clearly visualize the complexity of the system they are creating. This clear visualization of the behavioral complexity provides a strong framework to create and critique interaction design projects. Much like the role of the plan and section in traditional architecture, this system can act as the standard means of representation for interactive projects. Providing a standard such as this more easily allows the users to create and compare interactive projects between themselves and their peers. It is through this software, and the methods of thinking it enforces, that we hope to strive for a richer interaction and engagement between occupant and space.