Loading artwork...


Unfortunately, this object couldn't be found in our records.

Thanks for visiting Co(de)Factory!

This experience requires WebGL and has been optimized for Chrome, Firefox & Safari browsers on desktops, laptops & tablets.

Please use one of these browsers or devices to create your own Co(de)Factory sculpture.

If you're already using one of these browsers, please ensure you have WebGL enabled and a minimum window size of 480 x 640 pixels.

Download Google Chrome

Download Mozilla Firefox

Download Apple Safari


Create a piece of art using code

Currently printing at the Barbican:


About Co(de)Factory

Co(de)factory is an installation and online design tool that allows anybody to create art and become an artist. It empowers people by giving them tools to create complex 3D forms, and offers the chance to have their digital piece fabricated in 3D and showcased in the Digital Revolutions exhibition at the Barbican.

Photography by Andrew Meredith

For this piece, Karsten Schmidt has created a visual programming interface with simple design tools, which people can use to transform a single shape in countless ways to construct more complex objects. The interface is accessible to anybody online with a modern web browser, and all pieces can be uploaded to appear in the curated online gallery of this website. Any existing object can then be edited further, thus forming a chain of related pieces and their co-authorships.

Code operations

Any object, physical or virtual, is the result of a process. Co(de)Factory provides a minimal set of 8 simple geometric operations (processes), which can be combined in countless ways to explore basic programming concepts and construct new forms from a single start shape. At each step on the way to the final outcome, "Input, Process, Output", a fundamental concept of programming, is used to define an ever more detailed description of the 3D form. Because the created code is independent from the actual shapes, users can also experiment with switching between different start shapes and observe their different results.


This operation splits a shape into smaller shapes in a given direction (along the X, Y or Z axis). This operation is useful to create a grid of smaller shapes to which other operations can be applied later.


This operation moves the corners of a shape towards their center in a given direction (along the X, Y or Z axis) and results in 5 new shapes: the four walls and the enclosed core. The inset amount (wall thickness) can be controlled via the operation's slider. In combination with "Empty", this operation allows for the easy creation of hollow shapes (by later removing their core).


A mirror produces a reflection. This operation reflects/flips a shape on one of its six sides. It outputs both the new shape, but also the original, in order to allow further operations to be applied. When the shape is not a cube, repeated application of this operation results in curves or even rings.


The Scale operation is used to adjust the size of one of a shape's six sides. This can be used to create bevels, cones or as preparation step for the "Mirror" operation. The scale factor can be adjusted via the control slider.


With this operation a shape can be made longer (or shorter) along a given direction. The are six ways this tool can be applied, one for each side of the shape. The stretch amount can be adjusted via the control slider.


Tilting or skewing a shape allows for the creation of rhombic or diamond shapes, which in turn are useful starting points for building larger curved elements.


This operation splits a shape in half and shifts the center by a given length to form a symmetric chevron. Again, the shift amount can be adjusted via the control slider.


Last, but not least, this operation turns a selected shape into empty space and is therefore one of the most important operations to create complex forms.

Open Source

All components of this project are completely open source and available on GitHub:


Furthermore, the following projects & technologies were playing a crucial role in the making of this project and deserve special mention:


Clojure / ClojureScript





Google Closure

Google AppEngine


Karsten Schmidt


Commissioned by Google & Barbican.

Made in collaboration with
Google Creative Lab (London)

Select start shape


Submit to gallery

By clicking 'Submit' your sculpture will be entered into the Co(de)Factory gallery and will be put forward to the Digital Revolution curator for a chance to be printed and displayed in the Digital Revolution exhibition.

Thank you for taking part!

Your artwork has been received.