Shape CreatorMadison, WI

  • 32 Commits
  • 30 Pushes
  • 12 Deploys
Launch Site
Quick Intro

Create 3D shapes with the power of JavaScript! Share and 3D print your creations


You can write JavaScript programs to create 3D shapes and share them with your friends. To create a shape, click on "CREATE A SHAPE", then click the "Edit" button in the upper left corner. Then you can write a JavaScript program to define your shapes.

UI Rundown

  • exports.potential determines the shape itself and exports.color determines the color of the surface.
  • The "dimensions" dialog determines the physical dimensions of the shape you generate. You can give x/y/z bounds and units. The samples parameter controls the number of points at which the implicit surface is sampled.
  • To share your shape, click on "Sharing" on the right hand side menu, and copy/paste the link.
  • You can also export an STL file or upload your model directly to Shapeways.

Any JavaScript function that terminates within the time limit can be used to generate a shape. You can't require() external modules or use browser/node specific features. However, you can declare functions, write loops and use conditional logic/variables if you want.

Judging Instructions

The demo will only work in modern browsers with WebGL support so latest Firefox/Chrome should be ok with up to date graphics drivers, no internet explorer unfortunately. If your browser and drivers are not squared away it will probably crash.

What they Used

Lots of stuff, but the most important tools are npm and browserify. I also used a bunch of different modules I've written over the past couple of months. The database backend is based on leveldb. Here is a listing from the package.json:

  • "leveldown": "~0.9.2",
  • "levelup": "~0.17.0",
  • "ecstatic": "~0.4.12",
  • "json-parse-stream": "0.0.1",
  • "lexical-scope": "0.0.14",
  • "isosurface": "~0.1.0",
  • "normals": "~0.1.0",
  • "mesh-viewer": "0.0.0",
  • "webworkify": "~0.1.0",
  • "brfs": "0.0.8",
  • "dat-gui": "~0.5.0",
  • "nko": "*",
  • "browserify": "~2.35.1",
  • "xhr": "~1.2.3",
  • "parsed-url": "0.0.0",
  • "gl-matrix": "~2.0.0",
  • "stl": "~0.1.1",
  • "sandbox": "~0.8.3",
  • "shapeways": "~0.5.4",
  • "murmurhash-js": "0.0.1",
  • "write-vrml": "0.0.1"


Your Vote

Voting is now closed.

Other Votes

  • (3)
  • judge

    Icon Venture Partners

    I get where this is going and it could be very cool but is also very raw.

  • contestant


    Hey Mikola, it is so fun! Remembers SuperShape, your idea to create shapes and print them in 3D is super cool! Oh, and I loved your team name ;-)

  • contestant

    Amazing that we can make so complex 3d on browsers. I would hope to see more user interactions like drag&drop moving objects.

  • judge


  • contestant


    You did a fantastic job.

    By far the most complete solo entry I've come across yet.

    It makes me with all the more I had a 3d printer...

  • contestant


    Which is very useful app. I could not easy to read sample on the video. Should you upload tutorial for this app? that will be so helpful I thought . Thanks.

  • contestant

    Awesome for experimenting with equations and how they shape and color geometry!

  • contestant

    UC Berkeley

    This is cool, also seems like it might be useful for things like math classes.

  • judge


    Nice project, could be used to teach about 3d programming :)

  • contestant

    Grat, good achievement from a solo developer

  • judge


    • mikolalysenko

      Hi, could you explain why you rated this application so low?

  • judge

    Neat app - fun to play around with.

  • judge App Studio LLC

    This is awesome.

    Would be cool to see the ShapeWays support working. Nice clean, desktop-like UI. Always nice to see a cool WebGL project. Like the idea of defining the shapes with JavaScript, though I wish this was fleshed out a little more. I felt like I wanted a few tools to interact with the code/shape but I couldn't say what they would be.

    A phenomenal start!

    • mikolalysenko

      Actually the shapeways integration does work, but it does take a little while to process everything, and it also silently fails if shapeways decides to reject your model for any reason.

      For example, here is the output from the test model on shapeways:

      I agree though that the interface for this needs a bit more work, but I had a hard time getting DAT gui to work as I wanted for this purpose.

    • wprl

      For me ShapeWays gave a 500 page and I got no warning from your UI. It's cool that it does work in some case though.

      It's an impressive project.

  • contestant


    Love the 3d printer integration idea :)

  • contestant


    Neat Project, it would been nice if the UI were a little more simple.

  • contestant

    Activimetrics LLC

    Cool little program. I made a bullet quite by accident.

  • contestant

    Not bad, fun to play for a few minutes!

    I'd like a little better explanation about what I'm supposed to be doing, I got bored of it quickly and it's not easy to figure out.

  • contestant

    It crashed Chrome :(

    • mikolalysenko

      Like any WebGL application you need to make sure that your graphics drivers are up to date and that you have the latest version of your browser. Have you tried updating/restarting and running it again?


SEP 15
NOV 9-15
NOV 16