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.
[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.
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!
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!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 IntelDespite 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!
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.
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 wil@cubehero.com I hope the week finds you all well. Until next time, if STLs be the food of makers, print on.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.