Release Alpha

Well, I’ve been looking forward to it, and I’m glad to say that Cubehero is ready for some tire-kicking in a alpha release. They say that if you aren’t embarassed when you launch, you’ve launched too late. But first a few things!
Knowledge of git required to play

The current release is for people that know how to use git. I recommend using git 1.6.6+. If you don’t know what git is but want to learn, here’s a crash course and there are always plenty of good tutorials around the web. However, if you want to forge ahead, I have written a walkthrough below. In future releases, you won’t be required to know how to use git, but your version control powers will be limited.

You can only create public repositories

This means anyone can read or clone your repositories. So put your creative commons or public domain designs on cubehero. I will add private repositories in the near future so you can collaborate with clients privately.

Only the owner of the repository can write/push to it

While anyone can read and clone your repository, the owner is only one with permission to write and push to it. Eventually, you’ll want to work with coworkers on the same assembly, and you’ll want to be able to allow them to push and pull to the same repository.

Only linear histories

For now, cubehero isn’t able to handle multiple branches. It creates diffs between commits on a linear history. This is one of the things I’ll be fixing in a hurry.

Click here to sign up for Cubehero

Try it out and let me know what you think, got questions, or bug reports. I’d love to hear from you!


Posted in announcement, Uncategorized

APIs for Manufacturing

Posted in Uncategorized

See Robokitty in Cubehero Demo

With 3D printers, you can make stuff that you think up, or stuff that other people think up. When you have the ability to make things you think up, it changes the way you view the world. If I need something that’s one of a kind, I can design and print it, or I can find if someone else has designed it already. It’s like sharing thoughts in product form across the world. In a way, it’s kinda magical.


When you collect that magic with the power of the internet to collaborate, amazing period of innovation and imagination will blossom. However, I believe we can do a better job collaborating. I believe that the first step is to be able to see what has changed during the design of a model. 


With that in mind, I’m happy to say that you can now try out Cubehero in a demo, where you can see a pre-populated repo and see the visual diffs. (whew!) You will need a web browser that has WebGL enabled[1].


The repo contains a sample project where I’m designing a robokitty, because “The Internet needs more cats”. The link to the demo shows you the latest version of the file. Drag the model to rotate it. Then click on the blue ‘History’ button, and you’ll see a history of commits on the right sidebar. Click on each of the commits to see what has changed between that commit and the commit before it.


Soon, you’ll be able to create your own repos and see diffs of you STL models. If you have any questions about Cubehero, just reply and send me an email. Or you can find me on Olark chat in the bottom right hand corner. Looking to hear from you!

[1]  I’d recommend Chrome, but Firefox 4.0+, Safari 5.1+, and Opera 12.0+ will also do. Currently, no versions of Internet Explorer support native WebGL out of the box. It supports WebGL with a plugin, but I currently don’t support the plugin, since it has a different API. 

Follow Cubehero on Twitter

Posted in announcement

Faster Indeed

Hope you’re doing well and had your fill to eat and celebrate over July 4th. Here’s what I’ve been up to with Cubehero.
I’m wary of pre-mature optimization, but the job times for the queues were taking too long for higher polygon counts. After some benchmarking, turns out the biggest culprit was the STL parser. Originally, I had used Jison to generate a STL parser, but it turns out that was unnecessarily slow. Since STLs are simple enough, I wrote one by hand and the parser is an order of magnitude faster.


Cubehero model viewer appears more responsive now. It can now also show download progress for all modern browsers (except IE 8 and 9). That makes it so you’re not wondering what’s going on as the 3D model loads. Besides seeing the models in a history of diffs, you can now also see the model as it currently is. You can also download the model with the download button. 


For a test project, I started making a coffee cup with a face and two handles for ears. It kinda looks like a monkey. The model has a moderate number of polygons, with rounded surfaces, and convex and concave shapes, so I figured it’s a good test. Plus, I get to design something whimsical along the way. There appears to be a bug that messes up the diff for specific shapes, but I’ll need to dig into it further to see what the cause is.

Well, as always, let me know if you have questions. Otherwise, I’ll keep chugging!


Posted in Uncategorized

Lost and Found

It’s been a while! I’ve made some progress and I’d like to share it with you. You know, it’s one thing to have a prototype, but it’s another to go to production. But regardless of the bumps along the road, here’s what’s going on.

In the prototype, I was calculating the diff on the client side. So now, the diff is being calculated on the server side, and that allows me to do a couple things.

One, I can calculate diffs upon a commit and cache it, so it’s ready when you view a diff. It’s like getting your clothes washed as soon as you throw it in the hamper, so it’s ready right when you want to wear it again. No more waiting for your clothes to dry while waiting naked.

Two, it makes supporting different formats much easier, because I wouldn’t have to write different ports of different formats for the browser, since it’s already written for the server. There’s no sense in reinventing racing wheels, just because you insist on driving in a monster truck on the race track.

Most of these things are to make sure that users have a good experience using the diff. For now, I’ve decided to only support STL files at launch. Don’t worry, however. OpenSCAD and other formats will follow quickly after. 

If you have any questions, or want to share why you’re excited about Cubehero, let me know. It’d help inform the direction of Cubehero. Until next time, take care!

Posted in Uncategorized

Comic Time

I drew a comic for you here:


Whenever I have to tell people about 3D printers, it inevitably turns to the question: “What would you print with it?” The reactions I’ve gotten have both been imaginative and cynical. The other day, I summed up the cynicism the snarky remark by the dog above: that we spent $2000 on a machine that makes $1 parts. Though accurate about the current state of affairs, I think it’s short sighted.

In 1970’s, when the first microprocessors that enabled home desktop computers came out, most people didn’t know what we’d do with it, even those in the tech industry. As is commonly attributed to Gordon Moore:

“In the mid-70s, someone came to me with an idea for what was basically the PC. The idea was that we would outfit an 8080 processor with a keyboard and a monitor and sell it in the home market. I asked: ‘What’s it good for?’ And the only answer was that a housewife could keep her recipes on it. I personally didn’t see anything useful in it, so we never gave it another thought.” – Gordon Moore, co-founder of Intel


Despite all the examples on thingiverse, the honest answer is we don’t know exactly what we’ll be using this for. If I was working in the 80’s, and someone told me about networked computers, I probably could have come up with email or chat. But I would have never have foresaw Twitter or Facebook. In the same way, we want a 3D printer so we can figure out what it’s good for, and chances are, it may not be what we think.

To see what 3D printers are good for, sharing, remixing, and collaboration will be important as part of our collective exploration. Enabling that process and reducing friction is the role that Cubehero will play. 


As an update, I was able to incorporate the visual difference algorithm in the commit browser, so you can see the history of commit diffs. In addition, I’ve made significant progress on being able to parse OpenSCAD files for rendering. For those of you more technically inclined, I’ve ported the Backus-Naur Form in the OpenSCAD project to javascript to generate the abstract syntax tree. I will release it as an open source project soon, so you too can parse OpenSCAD files for giggles.

Until next time, I hope you’re all happy and well. Keep on printing!


Posted in Uncategorized

Happy April Showers

Surprisingly, it’s April already, and it always reminded me that of the time my English teacher made us memorize the first four lines of Canterbury Tales. Thanks for your replies. It’s pretty exciting to hear from you. From your replies seems like it’ll be ok to launch with git access, and then make it easier for non-git users later on.


Cubehero now can create physibles with a git repository along with it. The process is much like github’s user flow, where you create a physible through the web interface first, and then push from your git repository to the remote repository. You can see some of the screen shots below.

I’ve also been researching the ins and outs of git internals, because as rumors has it, git repositories bloat in size with binaries. As it turns out, this isn’t entirely true. The degree of bloat depends largely on how the file was compressed. In the case of the JPG image format, a single local change in one part of the image results in global changes in the file.


Thus, to git, every small change in a JPG image looks like large changes, and it thinks that you’re always sand blasting the Sistine Chapel to redraw it on every revision. But no worries. It should handle OpenSCAD and STL files just fine.

I’ve found one candidate workaround to this and will be looking at others. If you’ve heard of other things that help alleviate this problem, just reply to this email and drop me a line like house cats drops your mouse. Hope you have a great week!


Posted in Uncategorized

Hello. :-)

Usually, you sign up for an invite at some website, and you don’t hear from them for a while. That is, until they launch. By then, you’d forgotten all about why you were interested in the first place.

I’m going to try something a little different. Like those Georgian Era women on PBS dramas, I’m going to write you guys letters to update you on my progress with Cubehero as well as to get to know you–though I’m not as witty as Elizabeth Bennet, but I’ll try my best. 

Cubehero is in the pre-alpha phase. The most important milestone so far is being able to render visual diffs between models in webGL. One’s also able to connect to githuband browse the repository. If there’s a file that’s Cubehero recognizes as a 3D model, he punches into overdrive and renders it.

Currently, I’ve got a question that you might help me resolve. I’m debating how much to hide the dependence on git. I’m not clear how many of you interested in cubehero are users of git–and subsequently, how many of you are programmers? If it ends up many of you are programmers, then I can release Cubehero much earlier, without having to worry that git alienates you guys, like the Inappropriate Uncle at family reunions. 

If you’re not a developer, but you’re a designer (or otherwise), why would you find version control for 3D models useful? I’m curious about both questions, so if you’ve got thoughts, I’d love to hear from you. Simply reply to this message or email me at

I hope the week finds you all well. Until next time, if STLs be the food of makers, print on.

Posted in Uncategorized

Social software around a maker culture to better your world and mine

In the last couple of years, the cost of 3D printing has been dropping dramatically to the point where home and desktop 3D printer kits were available. In 2009, there was one major home 3D printer maker, called Makerbot. In 2011, we’ve counted at least 16 different kits available.

As 3D printing becomes more accessible and user friendly, more and more people will not only wan to print objects, but also design their own. Currently, there are many tools that help you design your own 3D printable objects, from Blender, Solidworks, Autocad, and Sketchup, to OpenSCAD.

When you’re armed with the ability to create objects, you can make your imaginations real. No longer will the ability to create out of pure thought be the domain of software developers.

In addition, we’re armed with the ability to share over the internet our creations. We can share them with others to build upon, and we can build upon the works of others to make our life and world better than we found it. Software that lets us socialize with others over the bettering of our world is of value. We believe part of the solution to make this happen is visual version control, where you can see a history of what has changed in an object. Additions in transparent green, and deletions in transparent red.

Social software around a maker culture will be a powerful force in the years to come.

So checkout the landing page, while sparse, should give you an idea of what we’re shooting for. As we make progress, we’ll update you more on what’s going on. Follow us on twitter, and we’ll keep you posted. 

Posted in Uncategorized