Project

General

Profile

Actions

Project Description - Software

Description

A number of commercial waterfall printers exist but creating one from scratch poses interesting challenges regarding both software and mechanical design.
This independent study focuses on creating the software needed to control a waterfall printer.
The software components of the system will be:

  • Sequence Designer - an application that enables the user to design the print sequence. To begin with this could be done by accepting as input a binary image of a certain width. The width of the image would correspond to the number of nozzles on the printer. A black pixel would represent water running and a white pixel would represent no water. The sequence would then be “played” by moving down the image line by line at a certain interval turning nozzles on and off depending on pixel values. The sequence designer would provide some visual information about the sequence but its main function would be to control parameters such as the time interval for moving down the lines.
    Future features of the Sequence Designer could include controlling the illumination of the water during the sequence and supporting 2 dimensional valve setup, enabling the “printing” of three dimentional objects.
  • Controller - software that will eventually communicate with the waterfall printer hardware. The controller will receive input from the Sequence Designer and be responsible for playback. The controller must have a well defined interface towards both the Sequence Designer as well as the hardware. This interface will be in the form of datastructures that can represent the print sequence and support up to two dimensional valve configurations (NxM valves) as well as generic valve attributes such as lighting, pressure, etc.
  • Simulator - The building of the actual waterfall printer hardware is beyond the scope of this independent project. However, a simulator should be created that can simulate the effects of particles being dropped at an initial acceleration (pressure at the valve) and accelerating due to gravity. This simulator should support displaying a matrix of virtual valves and interpret the output of the Controller to show a simulated output of the waterfall printer.

Although physical implementation of the waterfall printer itself will not be a part of this project, the student will be encouraged to investigate and experiment with control hardware such as using an Arduino to control valves/solenoids or running the Controller on a Raspberry Pi.

Future work will include building a physical waterfall printer which can be controlled by the software created. This will open up further possibilities such as experimenting with different water pressure, lighting (colors, strobes, per valve lighting, etc) and using fluids other than water to name a few possibilities.

The software will be released under a permissive open source license (MIT, Apache, BSD) and should preferably be implemented in Python.

Outcome

The outcome of the project will be a software stack that will enable a user to create a print sequence, send that sequence to the Controller which in turn will visualize the sequence on the Simulator. A demonstration with a small number of test sequences will be required.

The student will also turn in a detailed report describing the software and rationale behind design decisions as well as discussing future work. The report should be written in english.

Updated by Stefán Freyr Stefánsson over 12 years ago · 1 revisions