Recent Changes - Search:
ECG Home






Fall 2017

Older Courses

Spring 2017

Fall 2016

Spring 2016

Fall 2015

Spring 2015

Fall 2014

Spring 2014

Fall 2013

Spring 2013

Fall 2012

Spring 2012

Fall 2011

Spring 2011

Fall 2010

Spring 2010

Fall 2009

Spring 2009

Fall 2008

Spring 2008

Fall 2007


edit SideBar

Mark Sherman
December 10, 2008


Using scheme, develop an interface to the Roland Desktop Engraver for depth-based artistic engravings. The ultimate goal is to have a relief-carving like image, using all three dimensions.


Concepts Demonstrated

  • Recursion and List-building are used to generate the instructions for the engraver.
  • Higher Order Procedures are used to generate depth maps on the fly, much like the Henderson Picture Language used HOPs to generate images is 2-space.
  • Abstraction is used to provide a simple API while hiding the nuts-and-bolts of the system
  • List mapping is used heavily to prepare and process pixel data to depth lists.

External Technology

The Engraver required interfacing over the serial port. The engraver itself is a very precise piece of external technology that takes commands in ASCII. The built-in scheme ports procedures provide the interface to the linux port representation in the filesystem, and the linux kernel then handles the communication. All of these layers are external to scheme.


This project applies new concepts to image engraving. Rather than rendering the image through varying the density of standard pixels, this system adjusts the depth of the engraving to produce and image. The end result is a controllable scan-line-based, functional real-world carving mechanism powered by scheme. Every scanline that is carved is generated by a function describing the depths along that line, a feature that only scheme and its close relatives can support.

Technology Used Block Diagram

Additional Remarks

This project required a good deal of work be devoted to hardware and low-level API development. Once that was abstracted, image loading was required, which is a sub-project unto itself.

Please keep in mind that the engraver is a DANGEROUS tool, and should not be operated without proper safety considerations.

Edit - History - Print - Recent Changes - Search
Page last modified on December 14, 2008, at 08:29 PM