Made with Code


I recently had the pleasure of working on Google’s Made with Code initiative with the Red & Co. creative studio and Mash a group of developers located in Portland Oregon.

My primary focuses were creating the renderer for the Bracelet Challenge along with the binary exporter that takes peoples rendered bracelets and sends them to Shapeways for 3D printing. I have to say this job was probably the most satisfying work that’s come my way! For three reasons: (1) The initiative of inspiring a more diverse range of people interested in programming at an early age is awesome (2) Red & Co and Mash were friendly, fun and altogether great team to work with (3) The work was challenging and allowed me time to work with more cutting edge technologies ?

The Bracelet renderer was developed with ThreeJS. My modest contribution back to the ThreeJS project can be found here: STLBinaryExporter

The letters were generated by Red & Co. and exported into STLs. Since STLs are huge uncompressed representations of 3D objects (made up of tons of triangles) the files from there were converted into CTMs using OpenCTM‘s ctmconv—this shaved 10’s of megabytes of the combined file-size of the entire alphabet. The letters were then mapped to a spiral like lego bricks as conceived by Ryan Reece of Mash. Here’s a screenshot of what that looked like:

Screen Shot 2014-06-05 at 11.33.53 AM

The app also needed to run in Java (on Google’s AppEngine) so the server could render the bracelets the users created. Although the app could very well send the STL files directly to Shapeways, we needed to control what was being sent so there was no unfortunate surprises! By rendering on the backend we could be sure what was being sent to Shapeways. Instead of re-writing the code from scratch I decided to keep as much as possible in Javascript. I first got the scripts running in Rhino but it was too slow. I ran across the project Jav8 and was quite happy with the results performing around 10x faster than Rhino. I ended up writing some of the matrix math in Java and exposing the function to Javascript to speed things up further.

From there, the bracelets are sent to Shapeways where they are printed with high-quality nylon plastic on 3D printers from EOS, a German printer manufacturer who provided P760 SLS 3D printers to support the initiative.

The Bracelet challenge has a limited print run, so get them while you can! After that there will still be a lot of other fun challenges on the Made with Code website.

Here’s a video from Shapeways:


adminMade with Code

Sketchpad for Custom Print

Screen Shot 2013-10-28 at 3.55.16 PM

Sketchpad has been used in applications from scientific machine learning, to kids drawing, but we haven’t had much chance to focus on any commercial aspects. This is why we’re excited to be changing that. We’re gearing up to provide the technology that makes your users product customization experience quick and easy by tapping into our experience + codebase in building Sketchpad.

One of the many features we’re creating to push the envelope is instant previews of customized products—there is no more need to upload the artwork, process the preview on the server, and then download once again, this can all be done in milliseconds in the browser.

We’re looking for partners who own print companies, with websites that are in the need of automation and HTML5 goodness. Connect with us—

adminSketchpad for Custom Print

Sketchpad 3.0

Sketchpad 3 is available in the Chrome Webstore (for free), combining WebGL effects with vector editing, and lots of HTML5 goodness!

Some of the major improvements include:
  • Webcam FX core integration—take photos with your camera, add filters, and place into your drawing!
  • Save your entire drawing, from vector commands, to attached assets into a single .SKETCH package container which can be reloaded into the app via Drag & Drop. Special thanks to Zip.JS
  • Gradient text support (with live preview).
  • Improved SVG parsing/rendering.
  • Improved UX.
adminSketchpad 3.0

WebcamFX – GLSL Shaders


Take photos with your webcam: mix and match combinations of filters to come up with your own unique effects. FilterStack includes a large collection of filter combinations to help get you started.

Once you’re happy with your image, you can save to your computer, or upload to Sketch.IO to share with your friends. Similarly, you can share your custom filters as well—this way your friends can use the same filter you made for their own pictures.

To enable editing, hover over the right side of the app—this will display thesidebar. Here you can: add filters, modify the values of each filter in the stack, reorganize which filter is processed first, enable/disable filters, or remove filters. Each of these controls can create vastly different effects.

Play around, share the results, and let us know what you think!

Available as a Chrome Extension or Web app ?

adminWebcamFX – GLSL Shaders

Sketchpad 2.1

UPDATE: Read about Sketchpad 3.0

Where Sketchpad 2.0 introduced non-destructive vector + bitmap editing on the web. Sketchpad 2.1 (SP2.1) takes that bland package of vector tools and borrows features from Sketch Mobile, an app that exhibited my furthest exploration in creating colorful enviroments. SP2.1 is great at creating background wallpapers quickly now that most of the tools work with gradients, and are all editable in place—this can be especially fun on tools like Mr. Doob’s generative brushes, and the improved stamp tool.

New features include:

  • Multiuser drawing (NodeJS +
  • Editable generative brushes: Chrome, Fur, Shader, Sketchy, Web (via Mr Doob‘s Harmony)
  • Spacebar+drag while your in a brush (recommended by Chris Smith)
  • Change the tool type in the options drop-down menu after you’ve created a layer (Chris Smith)
  • Preview (ghost) the stamp tool before you apply it (Chris Smith)
  • Crayon tool reintroduced from Sketch Mobile.
  • Shapes: Rectangle, Ellipse, Polygon, Gear, Star, Burst, Radial Burst, Spiral (Sketch Mobile)
  • Gradients in the style window, useable with most tools.
  • Stamp tool now has “Translate” feature, combined with a low “Flow”, and a nice looking gradient, can create beautiful tapestries in a few clicks.

You can access SP2.1beta in two ways:

Have feature requests, or thoughts of how the interface is horrible? I would love to hear!

adminSketchpad 2.1