Tinkercad Launches Shape Scripts API

We are excited to announce that it is now possible to write Shape Scripts directly inside the Tinkercad editor and create shapes that are generated programmatically. While the scripts are written in the editor the actual scripts are executed by the distributed Gen6 geometry kernel running on the Tinkercad server cluster. We believe this is what cloud computing is at its best, harnessing great power through an extremely easy to use browser interface.

When we started working on Tinkercad one of the earliest feature requests was to let users create scripts to augment the editor. A key concern for us has always been ease of use. We wanted the API to be extremely accessible to everyone interested. That’s why we choose Javascript as the scripting language; it is a widely known language that is familiar to pretty much every web developer. We also felt that it was extremely important that users writing scripts could do it directly within Tinkercad and transparently harness the computational power of our dedicated cluster.

This is also the first time we open up the curtains and invite everyone to learn more about the Tinkercad Gen6 geometry kernel. It is a revolutionary kernel in a world where most CAD systems are moving towards utilizing half a dozen cores. Gen6 has been designed from the ground up to be able to effectively distribute single model rebuild operations across tens of thousands of CPU cores. We firmly believe this is where the world of CAD is heading and we are happy to be leading the charge.

Get started immediately at the developer portal.

23 comments

  1. Holy moly – I love you guys! This type of algorithmic stuff is one of the main reasons I have been going back to stuff like OpenSCAD or rhino once in a while. TinkerCad RULES!

    1. Thanks Agustin, you are a constant inspiration to us. We’ll keep working on this in the next few weeks. One big thing we didn’t have time to complete was creating fragments of the design tree, basically join a bunch of boolean operations together. That said, I’m looking forward to being able to create parametric gears and a ton of other utility forms.

      1. Thank you guys, Kai! You guys do the hard part – all I do is make weird stuff ;P

        As a user, it is fascinating to have access to this – I really need to break out the old math books this weekend ;) The tutorials are nicely written, by the way- very helpful. Can’t wait to see what’s next. You guys made my day with this, seriously.

        I have a project I am working on where this will be so helpful!

  2. We love you, too Agustin! Thanks for the props =) It’s pretty coolio and we’re totally looking forward to the algorithmic stuff you create!

  3. [...] TinkerCad has now added a scripting function, allowing you to generate shapes using expressions and algorithms — this could lead to some very interesting experiments! We are excited to announce that it is now possible to write Shape Scripts directly inside the Tinkercad editor and create shapes that are generated programmatically. While the scripts are written in the editor the actual scripts are executed by the distributed Gen6 geometry kernel running on the Tinkercad server cluster. We believe this is what cloud computing is at its best, harnessing great power through an extremely easy to use browser interface. [...]

  4. Too bad legacy users can’t try it out.

    Oh well.

  5. Tinkercad seems to rock harder every day.

    1. Thanks Randall. :-)

  6. Paul Pawelski · ·

    Very nice. Is an Openscad to Tinkercad Javascript translator a reasonable future feature? There are a lot of nice wheels out there I would rather not reinvent. http://www.thefrankes.com/wp/?tag=openscad

    1. That is indeed a wheel one would rather not reinvent. Implementing OpenSCAD support has certainly been considered, we have a custom OpenSCAD parser from an earlier project. There are a few big features missing like composition of shapes in the design tree (to support boolean operations) but most of that is just missing API bits, the functionality is already in Gen6.

  7. Paul Pawelski · ·

    Ahem… Kai, remember saying this, “There are a lot of features in the pipeline that would normally be classified as premium content but *** we want to give the free Trial accounts access to all those features *** as well. The best way to try out a new tool is being able to test out everything it has so I’m not a huge believer in crippled Trials. Also, the Trial account is really a free account that only lets you store 5 designs. As you can delete old designs this should be plenty to get you started.”? Doesn’t apply to the scripts?

    1. Thanks for reminding me, this is a good discussion to have.

      Our primary commitment will always be to those users who are on a paid plan. Creating a limited version of a feature that lets trial users try it out but still acts as an incentive to upgrading often takes dedicated engineering effort. With ShapeScripts, as will probably happen with a lot of other features in the future, we will release them immediately to the paid accounts and at some later time to the trial accounts. I think this is fair and square, if you are on a paid plan you should see the cool stuff as soon as it is ready.

      1. Paul Pawelski · ·

        Fair enough. However, you need to state these things clearly. Somthing like “ShapeScripts was released today for our paying subscribers. Granfathered free acounts will be able to try it staring in two weeks and free trial accounts will get to try it staring four weeks from now.”, or whatever spacing you feel like doing. Say what you do, do what you say.

      2. We have a principle of not pre-announcing features which applies to trial features as well. I’d hate to set expectations like that just to have the schedule change later.

  8. Chris Rogers · ·

    Very cool. Especially if I can send the script over TCP from another application like LabVIEW – then labVIEW could generate the script and send it to TinkerCad, TinkerCad could send back a cad file and an image of the drawing and then labVIEW could control the printer and print it all out….

    1. This sounds like a really interesting scenario. Do you actually have a printer hooked up to LabVIEW, I didn’t know it supports direct integration? I’d love to talk more about your particular use case, would you mind sending an email to team@tinkercad.com.

  9. Oh mah gosh I love this program! It’s gotten me into 3d modeling, and I ordered my first Shapeways item ever because I was able to make it in your program!

    Gushing aside, I found a problem with your “Platonic Shapes” tutorial that caused me some confusion.

    The first shape made, the “tetrahedron” provides the example code below:

    function process(data, params) { // Uh Oh! – process takes only one argument
    var r = params.radius;
    var angle = 2*Math.PI / 3;
    … (more code)

    However, the process function takes only one argument, not 2, and therefore copying the example function into the Shape Scripts editor waz brokez!

    It only took me a couple minutes to debug, but might trip others up who might want to try coding but don’t have as much experience.

    Best,
    Brian

    1. Thanks Brian, great catch. We did some last minute tweaks to the API before launch and dropping the extra param was one of them. The importers are internally ShapeScripts and we used to always give that extra data param to signify the original file data to be imported. We figured out a different way of passing the input file but it seems like we missed one spot in the API docs.

      Take care,

      Kai

      1. Ack, sorry about the double-post! After going through the login process I didn’t see my comment appear. Thanks for the response & explanation!

    2. This is fixed now.

      1. Awesome! Thanks so much for the quick response :)

  10. Oh mah gosh I love this program! It’s gotten me into 3d modeling, and I ordered my first Shapeways item ever because I was able to make it in your program!

    Gushing aside, I found a small glitch with the “Platonic Shapes” tutorial that might cause confusion.

    The first shape made, the “tetrahedron,” provides the example code below:

    function process(data, params) { // Uh Oh! – process takes only one argument
    var r = params.radius; // Zomg Params doesn’t exist!
    var angle = 2*Math.PI / 3;
    … (more code)

    However, the process function takes only one argument, not 2, and therefore copying the example function into the Shape Scripts editor brokez!

    It only took me a couple minutes to debug, but might trip others up who might want to try coding but don’t have as much experience.

    Best,
    Brian

  11. [...] modeling (and teaching!) tool. Programmatic 3D modeling was even added to the mix recently with the Shape Scripts [...]

Follow

Get every new post delivered to your Inbox.

Join 77,542 other followers

%d bloggers like this: