Category Archives: Software

Learn ShapeJS: Coins

On tap for this week we’ll print our own coinage. Don’t tell me you haven’t secretly wanted your own currency! When we first introduced cast metals it was one of the first projects I thought of. Here are the first tests I’d did:


These came out well, better then I really expected. The detail was amazing, nice weight to them and they sounded right when you flipped them. If your latin is not so good, it says “I scream, you scream, we all scream for ice cream.” Well, maybe it says that, been a long time since latin class.

In terms of what went wrong. I overestimated the height needed so the text it a bit too raised from the base. It doesn’t feel completely right in the hand, more like braille then coinage. Looking more at real coinage they have some edges(called reeds). Adding those cleaned up the sides nicely. Here is the second attempt:

This time I also printed them out in stainless steel as well as the polished metals. Steel has a minimum height of 3mm. The detail is better then I expected and the pricing is certainly nicer. It does however feel a bit heavy for a coin. I also did a test with White Strong & Flexible coins, but I can’t say I really liked them.

You can create your own coins here: Coin Example

This script uses concepts we have mostly already covered, but there are a few more details of the Image3D datasource to cover. The first is the useGrayscale method. The default operation is to assume your image is black and white. Under the covers we process this into a distance transform. We do this so that lower resolution images looks better. For greyscale imagery we can’t do the same operation, we just take your image and use it to define the height. Black represents the highest points and white the lowest. Think of this like your drawing with a black pin, your ink creates 3D geometry, the darker it is the more of it.

The second concept is the image placement options. When we create the geometry from an image it has a few modes. These are based off the setImageType and setImagePlace. The image type says whether we creating an embossed or engraved image. An embossed image has the darkest points going upwards whereas an engraving has the darkest points going downward into the object. The placement options say how the image is placed in the image box. Top placement puts the image in the upper area of the box, bottom does opposite. Both mode has the image in the top and bottom of the box. The following diagram gives a visual reference of the different modes:

Coins are fun way to start into the 3D printed metals. If you create your own coins or improve my script post into the forums and show it off.

Learn ShapeJS: Volume Pattern Ring

For this week’s post we’ll create a ring based on volumetric patterns. In the process we’ll learn about blending in boolean operations and how to make wearable 3D jewelry. So first up, a photo to get you inspired!

The basic idea of this script is to cut a ring out of a volume containing an interesting 3D pattern. We learned about VolumePatterns in our ToothBrush Holder posting. These patterns fill the design space with a controllable pattern generator. We can then use some simple boolean operations to make a ring. We’ll cut the space with two cylinders. The first cylinder is the outer edge of the ring. The second will be the inner edge of the ring. Using a Gyroid pattern we get the following starting pattern:

Here is the code, the cylinder ocutter cuts the space for the outer ring, the icutter cuts it for the inner ring. The sides are then cut using 2 cutting planes.

  var ocutter = new Cylinder(new Vector3d(0,-10*CM,0), 
                             new Vector3d(0,10*CM,0),size+pattern_thick);  
  var icutter = new Cylinder(new Vector3d(0,-10*CM,0), 
                             new Vector3d(0,10*CM,0),size);
  var cutter = new Subtraction(ocutter,icutter);
  
  var body = Intersection(gyroid, cutter);    
  
  result = body;
  
  var fplane = new Plane(new Vector3d(0,-1,0),new Vector3d(0,width/2,0));
  var bplane = new Plane(new Vector3d(0,1,0),new Vector3d(0,-width/2,0));


  result = new Subtraction(result,fplane);
  result = new Subtraction(result,bplane);

  s = ringSizeToRadius(16) + 6*MM; 
  var scene = Scene(result, new Bounds(-s,s,-s,s,-s,s));
  return scene;

 

One thing you might notice is the pattern has some sharp edges. An issue with jewelry and rings in particular is they need to wear well. No-one is going to like wearing a metal ring with sharp edges. In this example we use two techniques to make the rings more comfortable. The first is to provide a liner in the ring that separates the potentially sharp pattern edges from your finger. By using a cylinder as a liner we a get a known pleasing shape that is easy to match with the requested ring size. This code shows the addition of the liner by adding another cylinder inside. The thickness of the band is specified in the band_thick variable.

  var ocutter = new Cylinder(new Vector3d(0,-10*CM,0), 
                             new Vector3d(0,10*CM,0),size+pattern_thick+band_thick);  
  var icutter = new Cylinder(new Vector3d(0,-10*CM,0), 
                             new Vector3d(0,10*CM,0),size+band_thick);
  var cutter = new Subtraction(ocutter,icutter);
  
  var body = Intersection(gyroid, cutter);    
  
  result = body;
  
  if (band_thick > 0) {
    var oliner = new Cylinder(new Vector3d(0,-10*CM,0), 
                              new Vector3d(0,10*CM,0),size+band_thick);
    var iliner = new Cylinder(new Vector3d(0,-10*CM,0), 
                              new Vector3d(0,10*CM,0),size);
    var liner = new Subtraction(oliner,iliner);
    result = new Union(result,liner);
  }
  
  var fplane = new Plane(new Vector3d(0,-1,0),new Vector3d(0,width/2,0));
  var bplane = new Plane(new Vector3d(0,1,0),new Vector3d(0,-width/2,0));


  result = new Subtraction(result,fplane);
  result = new Subtraction(result,bplane);


  s = ringSizeToRadius(16) + 6*MM;  // Hardcode to show sizes changes better
  var scene = Scene(result, new Bounds(-s,s,-s,s,-s,s));
  scene.setVoxelSize(0.05*MM);
  return scene;

 

The result looks like this:

This is better, but it still contains some sharp edges around the pattern. The second technique is to use a blend on the boolean combination operations. The default operation of booleans such as a Union, Intersection or Subtraction to combine datasources typically create hard edges. Notice how the liner and pattern seem very distinct. A blend allows you to smooth out these transitions. All booleans have a setBlend method you can use to blend the results together. The parameter is in physical units which represents the distance to smooth over. The larger the distance the more smoothing. Here is our ring now with some blending applied.

High Search Space Scripts

I classify these scripts as high search space scripts. There are a lot of non printable and non interesting rings,but buried inside are some real gems. This can be fun but it does make it challenging if you want to expose this type of creator to novice users. ShapeJS will have more tools soon that will help with the printability aspects. For the aesthetics, perhaps we can use some of the new deep learning algorithms to help us understand what looks good. I’m thinking of a user interface that shows you a bunch of random rings, you swipe Tinder style to rate them. It then uses these to train a recognizer of your style. Then it presents you news rings that are more likely to your tastes. Likely a pipe dream currently but could be something in the future. For now we’ll have to assume the user is interested enough to play with the script and find interesting patterns on their own.

Take a look at the Pattern tab on the final creator here:

This tab has several parameters available to travel through the design space. The Period,Thickness and Height parameters control the overall pattern. The Location and Rotation params move the ring geometry to different areas in the pattern. Consider this like driving the pattern around to find the right parking space. The last parameter, Blend let’s you change the amount of blending that’s used. This changes the overall look a fair bit and can also be used to get around some wallthickness issues to remove or thicken small pieces.

A few more pictures to wet your appetite. This is a close up of a printed piece:

And this is a montage of a few different parameter settings. I really like the range of different patterns you can get from this script.

I added this creator to the ShapeJS Examples page, you can find the completed script here: VolumePattern Example.

Learn ShapeJS: Light Switch Cover

This post you’ll learn about how to load triangle meshes into ShapeJS and a method to protect functional areas in your design. Our goal this week is to design a lightswich cover that is customized with a user image. I started this process by finding common measurements of light switches and thinking about how to 3D model it. I quickly got into wanting a script that could handle n toggles, different hole types, phone and audio connectors, it got complicated fast! Then I found some already 3D modeled versions in different model repositories and became lazy. The final form of this script takes a 3D triangle model as its base object and then overlays the user image. Let’s start with a photo of the final object to get us inspired:

To understand how we load 3D models into ShapeJS it helps to understand the internal representation we use. All datasources in ShapeJS calculate a signed distance function. This is zero on the surface of the object, negative inside and positive outside. The function for loading a 3D model from your code is called loadModelDistance. It takes the file name, a voxelSize and the maximum distance to calculate. The voxel size controls the resolution we load the model and how fast it loads. For small models I use 0.1mm, but for something larger like this model I use 0.2mm. For the distance, you want to use a distance out to the maximum place your edit the model. For our light switch cover we’ll be embossing our image up about 1mm so I calculate the distance function to 1.2mm. Think of a cloud surrounding your model, you need this cloud to intersect anything you’ll doing to the model such as adding or subtracting material. You don’t need to be super accurate about this, but the farther out you calculate it, the longer the calculation takes.

Let’s start by just loading the model itself.

var params = [
{
name: "model",
label: "Model",
desc: "3D Model of light switch",
type: "uri",
defaultVal:"http://www.shapeways.com/rrstatic/javascript/shapejs/examples/models/Light_Switch_Plate1.stl"
}
];

function main(args) {
var base = loadModelDistance(args.model, 0.1 * MM, 1.2 * MM);
var bounds = base.getBounds();

return new Scene(base, bounds);
}

For the basic light switch cover it looks like this:

Currently we support loading STL and X3D files. The X3D files currently ignore the color information and just load the geometry. When you load the model it will return an object with a bounds property. You can use that bounds property to set your scene bounds.

From there we can start adding in the user images. The way I thought about this was to reuse the Image3D datasource. This loads an image and makes 3D geometry out of it. In this case we are going to extrude it up by 1mm. One problem with this concept is it will block the functional areas of our model. In this case we need to protect the two screw holes and the square light switch rocker area. To do this we are going to model the protected areas and then subtract those from the pattern. The makeImage method takes our user image and the makePattern method subtracts out a box and two holes to protect the design.


function makeImage(path, w, h, d) {

var img = new Image3D(path, w, h, d);

img.setBlurWidth(0.2 * MM);
img.setImagePlace(Image3D.IMAGE_PLACE_TOP);
img.setCenter(0, 0, 3.5 * MM);
img.setUseGrayscale(false);

return img;
}

function makePattern(path) {
var box = new Box(12.5 * MM, 25.5 * MM, 15 * MM);
var hole1 = new Cylinder(new Vector3d(0, -30.674 * MM, 0), new Vector3d(0, -30.674 * MM, 25 * MM), 5.5 * MM);
var hole2 = new Cylinder(new Vector3d(0, 29.805 * MM, 0), new Vector3d(0, 29.805 * MM, 25 * MM), 5.5 * MM);

var img = makeImage(path, 64.16 * MM, 106.185 * MM, 1 * MM);

var holes = new Union();
holes.add(box);
holes.add(hole1);
holes.add(hole2);

return new Subtraction(img, holes);
}

You can run the full example here: Light Switch Cover Example

I think this design came nice. I also tried it in our Blue material:

One variant I tried was to cut the pattern completely through the original model instead of embossing it. Looking at the 3D model itself I really like this better, plus is was much cheaper. That said I found out quickly that looking inside an electrical box is not the prettiest of things. Seems the original designers had the right idea of covering that stuff up!

Couple of notes about this project. This current script embossed 1mm of material on top of an existing model. The model itself is pretty darn strong printed in plastic, so I feel like adding more material is not necessary. Perhaps engraving the design would work well and cost less. The second note is about costs. I looked around on Etsy and Amazon to get an idea of whether this concept would work. Typically 3D printed items are more expensive then their mass produced cousins. On Amazon I found single light switch covers ranging from 0.25 for a very basic model to $20 for a fancy model. On Etsy they range from $5 to $32. This design costs around $18 currently. I’d say that puts this in the ball park of a good concept that could compete on price and allow the user to create whatever design they want. This method is also applicable to other objects you’d like to put designs on such as a phone case. Take a base 3D model of the case, model the functional areas in the case you want to protect such as the camera and controls and there you go. Instant phone case creator!

Learn ShapeJS: Toothbrush Holder

For this weeks project we’re going to learn a new modeling technique, have some fun with volumetric patterns and then apply these to make a toothbrush holder.

Last week we talked about using 2D imagery as way to create 3D data. We’re going to reuse that technique here but in a different way. In traditional 3D modeling one of the first modeling technique you learn is called a surface of revolution. If you’ve ever played on a pottery wheel or lathe then you’ve seen this technique. Basically you take a profile and turn it around a circle to make a solid. Here we’ll reuse the Image3D datasource to read in a user provided profile. We’ll then use the RingWrap transformation to revolve that profile around a circle.

Let’s take a look at an example. This is the profile we’ll use for the toothbrush holder. For my design I wanted a solid bottom with curved in sides. The profile you see here is basically one half of the object we want. In your mind just reflect the image to the left to imagine what the finished model will look like.

Here is the solid created from that profile:

One important concept in 3D printing is wall thickness. Depending on the strength of the material you may need thicker walls. The thickness of your lines(StrokeWidth in some software) determines how much material your walls will contain. For now we won’t go too deeply into wall thickness but I wanted you to realize that you could change this based on how thick you make your lines.

The ShapeJS code to create this profile looks like this:


function makeShell(profilePath, width, height, voxelSize, blend){
var radius = width/2;
var boxDepth = 2*Math.PI*radius + blend / 2 + 2 * voxelSize;
var boxWidth = radius;
var boxHeight = height;

var image = loadImage(profilePath);
var grid = image.getGrid();
var expandOp = new ExpandOp(0,3,3,3);
grid = expandOp.execute(grid);

var image = new Image3D(grid, boxWidth, boxHeight, boxDepth, voxelSize);
image.setBaseThickness(0.0);
image.setBaseThreshold(0.5);
image.setUseGrayscale(false);
image.setBlurWidth(2*voxelSize);

var ct = new CompositeTransform();
ct.add(new Rotation(0,1,0, -Math.PI/2));
// align side of the image box with xy plane
ct.add(new Translation(0, 0, -radius/2));
ct.add(new RingWrap(radius));
image.setTransform(ct);
return image;
}

This technique is good for making a bunch of different objects such as vases, candlesticks, and wine glasses. If you pair this with a simple sketching interface that exports an image, you could make a quick authoring tool for making some nice objects. We’ll return to this idea in some later postings.

The next concept to cover is a volume filling pattern. These are regular patterns that fill space infinitely in all directions. They have many uses, not the least of which is the ability to
turn something rather plain into something really interesting. Let’s look at what these patterns look like:

Volume Patterns

The top two patterns are called a Gyroid. The specific features of a Gyroid are interesting but too much detail for here. Wikipedia’s entry has more details if your interested: Gyroid. The two specific examples you see here are the same pattern but with the Period changed. The period parameter determines in what distance the pattern will repeat. So for a gyroid you roughly think of it as how large the holes are. The other parameter is the thickness. Most of these patterns are in theory thin sheets. By adding a thickness parameter we make it possible to give them volume and give you control over how much material is used. The second row of pictures contains the SchwarzP and SchwarzD patterns. Over time we’ll likely add some more interesting patterns.

It’s now time to combine both of these techniques to create a 3D printed object. We first take a user profile to make the basic shape of our object and then we intersect it with a Gyroid to make
the surface more interesting. I added parameters to help you control the volume pattern and move the object through the volume space. Another useful control is the Blend parameter. This affects
how round or flat things look like and really changes the feel of the object.

Here are some examples using different volume patterns and parameters:

Examples

Now that we have some good models being created from our script its time to start printing them. A common practice if you have a 3D printer is to prototype the print in the cheapest material you have available. I have a small FDM printer at home so I choose to print it out using that. Since i only have one printer extruder I had to use the same material for supports and the main item. After a long session of removing supports I got to hold my first version. Success! Sadly, the supports left some tool marks but all in all, I was happy with my first version.

FDM Print

In an ideal world, I would of designed my object to not require support material. But that can be a tough problem. Instead of doing that I decided to switch materials to the SLS Nylon material offered at Shapeways. The built object sits on a bed of powder while printing so it doesn’t require any support material. The second version of my print looks like this:

SLS Print

A few design notes from this project. After trying it out a bit as a real toothbrush holder I’ve decided that having a top lip would be a nice feature. Depending on how the pattern intersects at the top you can get some pretty big crevices which the brushes like to fall into. For the final script I added a top and bottom rim option which you can use to line the shapes. I decided not to use the bottom rim as I wanted the water from the brushes to flow out.

Top Rim

The last note is I would recommend sealing these prints with something to keep them clean. If the material you use is somewhat porous(most are) then eventually you’ll get toothpaste stuck too it. I applied a coating of Krylon Crystal Clear which is an acrylic coating to seal the material. I’m hoping this makes my holder last a long time and makes it easier to clean when needed.

That wraps this week’s Learn ShapeJS posting. We covered a lot of ground today, you learned a new modeling technique and delved into the fun world of volume patterns. If you make something cool with this script please share your experiences in the ShapeJS forums. I almost forgot! Here is the example script for you play with: ToothBrush Holder

Learn ShapeJS: Image Poppers

For our first foray into learning ShapeJS, we’re going to start by using 2D Images. Millions of people already know how to use 2D image tools, so if we can leverage those skills for 3D modeling we’re in business.

The advantages I see in using 2D source material are:

  • Millions of 2D capable artists compared to much fewer 3D artists
  • Easy to source free material on the internet
  • Easy to purchase high-quality assets
  • Sketching interfaces are fun and intuitive for many

 

Image Popping

The basic concept is to use a 2D image as the source to create 3D data. You specify the physical dimensions of the base and the 2D image is extruded into the Z direction. The image of the letter R on the left creates the 3D object on the right. This is the basics of what I call Image Popping. You pop the image up into the third dimension.

Image to 3D

The complete docs for the Image3D datasource are available here: See Image3D.

So now that you can use imagery in ShapeJS let’s think about what can be made with it. The first object that came to mind for me was a pendant. By simply adding a loop or a bail/connector to the top of a 2D image, you have a quick and easy 3D jewelry project. This is the basis for the Pendant Creator, one of our 2D-friendly design apps, which is a popular first creator for those new to 3D printing. You can use our pendant creator here: Pendant Creator


My First Pendant

 

That project went well, so I decided to try my hand at something dear to my heart: books! This time I conned a friend into sketching some crystal-like patterns and used that as the source material to pop up a bookmark.

 

Transformations

That was fun, but my friends rightly pointed out that I could have done that project with a laser cutter. Now I’m sad. Looks like I need to up my making game. The next level of image popping is to transform the image in some way. All ShapeJS datasources can take a Transform via the setTransform() method. A transform is a function which maps an object to a new version of itself and can significantly change a datasource. A simple transform, called a Translation, is used to move and object around in space, i.e. to move an object one unit to the right, you say new Translation (1,0,0). Other transforms can rotate and scale (change size of) an object. A more advanced transform that I commonly use is the RingWrap transform which wraps the image around a cylinder. This allows us to easily use an image to create a ring or bracelet. We used this in our Ring Popper Creator. Here are some printed examples we’ve done using that technique. The top is the printed object and the bottom is the source image used.

 

It’s pretty simple to make. You just load an image and then use the RingWrap transformation to bend it around a cylinder the size of your finger. This technique is good for making rings. If you want to make a bracelet out of it then you might want to use another transform called Scale. A scale transform changes the dimensions of an object in any direction. For your wrist you’ll notice that it’s really a squashed shape not an exact cylinder. This example takes the ring example and resizes it for your wrist with a slight scale to make it fit better: Bracelet Popper

Tiling and Symmetry

Our final example for image popping will takes us into some interesting places. Perhaps you’ve seen the cool art done by Arabic artists. Think of Alhambra, or more modern, the work of Escher. These all use tiling and symmetry patterns to make complex and pleasing patterns. Personally I’m not a great 2D artist so I find it difficult to fill an entire canvas with interesting designs. One way to get around this is to take a simple element and then transform it around your space. ShapeJS has an extensive set of support for tiling and symmetry. A later blog post will go into much greater depth but I wanted to end this post with an example that I hope inspires you. Using a single image we can tile that around a sphere. This is called an Icosahedral Symmetry and it looks like this:

Icosahedral Reflections
By Tomruen at en.wikipedia

 

The lower corner of your image is reflected around the sphere. You get 120 copies of your image rotated into different orientations. This makes for some really cool patterns from simple images. Here is an example I made into a tea light:

Tealight

You can try out this example here: Tealight.js

Using this same technique we can also make something like a candy dish. The dish is made by keeping the lower quarter of the sphere and then a base is added to make it stable.

Soap Dish

You can try out the Candy Dish example here: Candy Dish Example

2D Images make a powerful starting point for creating 3D models. ShapeJS makes it easy to use images as the source material for some fun projects. Hopefully this blog post has inspired you to create your own objects using the Image3D datasource and some simple transformations. If you have questions about ShapeJS please join us in the forums: ShapeJS Forum

Introducing the 3D Manufacturing Format

Screen Shot 2015-04-30 at 11.12.49 PM

You may have heard the news that a new 3D Manufacturing Format (3MF) was announced recently at Microsoft Build. We’re excited to have a part in this news and wanted to come here to tell you more about it. The announcement today was in regards to the 3MF Consortium we are a part of. Seven leading companies in the global 3D printing sector have come together and will release the 3FM specification, which allows design applications to send full-fidelity 3D models to a mix of other applications, platforms, services and printers. The first version of the specification is available now for download at no charge!

We’re in great company as the other members of the 3MF Consortium are: Dassault Systemes S.A.; FIT AG/netfabb GmbH; Microsoft Corporation; HP; SLM Solutions Group AG; and Autodesk. For additional background, the 3MF Consortium is a Joint Development Foundation project. The Joint Development Foundation is an independent non-profit organization that provides the corporate and legal infrastructure to enable groups to establish and operate standards and source code development.

323_rwd7kt

The mission is to deliver a 3D printing file format that is:

  • Rich enough to fully describe a model, retaining internal information, color, and other details.
  • Extensible so that it supports new innovations in 3D printing.
  • Practical, simple to understand and easy to implement.
  • Free of the issues inherent in other widely used file formats.

 

While modern 3D printers, including lower-cost models, are capable of printing items that are otherwise difficult to describe using existing formats it was definitely time for a change. The 3MF specification eliminates the problems associated with currently available file formats, like STL (which was originally designed in 1989!). It resolves interoperability and functionality issues, and will allow for further innovation in the industry.

Sounds great, right?

So how did this all start? It all began with a discussion among industry leaders regarding the best way to enable all of our various products to work well together. The group determined that the best approach would be to create a new 3D file format and support it through a collaborative effort with broad industry involvement. Accordingly, Microsoft donated its 3D file format work-in-progress as the starting point for the 3MF Consortium’s further development of the specification.

We’re honored to be a part of this amazing group and hope the 3D printing community is excited for what’s to come. We’ll be sure to keep the community updated as things progress and new versions of this specification are released!

3DPrintingDog Creates 3D Printed Kinetic sculptures

Some of the best designs we come across on Shapeways are the ones that take advantage of the printers we use to create incredible unique products we’ve never seen before. A Digital design studio called 3DPrintingDog based out of Philadelphia, PA uses the power of Shapeways SLS (Selective Laser Sintering) printing to make 3D printed Kinetic sculptures that come out of the printer with no assembly required. Here are a few examples of the designs that they’re making designed with Solidworks.

Deconstructed Bicycle Freewheel

 

Deconstructed Bicycle Freewheel

What are some of your favorite fully articulated designs you’ve come across on Shapeways? Let us know in a comment below or tweet us @Shapeways.

Two New Visualizations in Shapeways 3D tools: Bounding Box and Parts

Designing for 3D printing is more than just making a 3D model.  It’s understanding how big you want your figurine to stand on your desk, how thin your ring can be in plastic versus gold, and keeping track of all the details on intricate models while making sure all the parts are connected.  We launched Shapeways 3D tools in January to help bridge the gap between creating and designing a 3D model and actually  having it printed by giving you more confidence to know when your model is ready for the printers.

Today we are launching two new visualizations in 3D tools to help you further understand what your model will look like when it lands in your hands: a bounding box visualization and a part count visualization.

 Understanding Model Size: Material Specific Bounding Box Visualization

Understanding how big or small your model is physically and what materials you can print it in based on it’s size can be challenging when you are staring at your model on a screen and can easily zoom in and out.  This is especially true if you are designing for multiple materials – what’s the right size model that lets you print in all your favorites? Understanding how to change your model to make it the right size – is one part of the model too long? Do I just need to scale it slightly smaller? – can be tricky without being able to see the maximum and minimum size you can print in for a specific material.

By clicking on the bounding box tool in 3D tools, you can understand both how large or small your model is in relation to the bounding box for a specific material, and what part of your model is too big or small. Our visualization combines two elements: coloring parts of the model that are too big or too small red so you know which parts have issues, and visualizing the maximum and minimum bounding box oriented around your model as a transparent box.

When your model is within the size guidelines to be printed, you will see it inside the maximum bounding box.  So if you were thinking of making it a bit bigger or smaller, you can get a sense for how much you could change the size of your model.

size, bounding box, visualization, shapeways

If your model is too large, the part of the bounding box where the model is sticking outside the maximum bounding box will turn red to help you identify along which dimensions your model is too large.  If you have a multiple part model, only the parts of the model that exceed the bounding box size restrictions will turn red. Parts of your multiple part model that are OK in size will remain grey.

bounding box, size, too big, shapeways, visualization

If your model is too small, you will see it colored red inside a minimum bounding box.  By moving your model around, you can see which dimension(s) of your model are too small.

bounding box, size, too small, visualization, Shapeways

Identify Accidental Loose Shells: Part Count Visualization

Building detailed, complex models can result in incredible creations that are a marvel to hold and see.  Sometimes though, with so many details and parts, loose shells can accidentally be created.  Loose shells are pieces of your model that are separate and unconnected from the base part of the model. These can be intentional, but are often unintentional.

Our new part count visualization helps protect you from ordering a model you expect to come in one piece, but actually receive in many pieces because it uniquely colors each and every part. For example, in this model made of connected stars, all the stars were intended to connect to each other except two of them were slightly misaligned.  With the part count visualization, you can clearly see the accidental loose shells – the two unconnected stars – and fix your model appropriately.

part, multiple parts, part count, 3D tools, Shapeways

Go to 3D tools today from My Models or Model Edit and check out your models in the bounding box and part count tool to see how big or small your models are or if you have any accidental loose shells!

 

3D Tools: Learn to Use Your Model Feedback to Improve Your Design

In the first tour of Shapeways new 3D tools we talked about all of the automatic and instant checking done by our software when your model is first uploaded. This video will give you a quick tour of what information 3D tools can provide about your design file when it does not pass a manual check from one of our 3D engineers at our factories.

I Spent My Weekend Learning to 3D Model with ShapeJS, Here’s How It Went

Written by community member Daphne Laméris, and you can see her key sleeve here.

ShapeJS, ever heard of it? I did, but it took me a long time to actually look at it and try to understand it. The whole idea of using code to model a part looked really hard, and is not what I am familiar with. I can use SolidWorks to model, tried Blender twice and Rhino once. In the end, I always stuck to what I knew, SolidWorks. It became time to step out of my comfort zone and try something new.

The great thing about 3D printing is the option for mass customization. For a lot of designs, I already use the co-creator options. This way, I can offer rings in difference sizes and a key sleeve that can be adjusted in size and with text. But every order still takes time to make and that order cannot be produced until I make the model. Therefore, I looked into ShapeJS.

shapeJS key label

With ShapeJS you can use javascript to make models. Numbers and texts filled into  textboxes can be used as parameters in your code. For my key sleeve, this could be the diameter of the key and the key thickness. For a better explanation you can check out the Shapeways.com shapeJS introduction.

So I set the goal to make my key sleeve in ShapeJS. It is a simple shape that needs multiple values of the user as input. The first problem is that I had no experience whatsoever with javascript before I started. Luckily, there are some examples available as well as some text. I read all the text and look at all examples, not understanding most of it. But I changed some values in the examples and saw what it did. Especially the example with the picture is fun, it’s easy to just upload a photo and see what it does. The next step was sketching the key sleeve. How could I build my design from simple shapes with  the Booleans? The original key sleeve was made with SolidWorks. Using code is a different way of modelling. It still works with solids, but you can’t make a sketch as with SolidWorks (well, at least not that I’m aware of). So I wrote down what the code should do:

pseudocode for shapeJS

The picture above was a first rough sketch (made without the intention to show it to anyone else, this is often referred to as “pseudo code” where you write out in plain words what you want to code to do and in what order). I wanted a hollow cylinder by subtracting a small one from the big one. Next a part should be cut out – this is the opening for the key. So I need to make a box, give it a position connected to the key radius and subtract it from the hollow cylinder. The design also needs a hole for the key ring. The position is determined by user input as well as the size of the hole. Finally, the key has some text that needs to be on the front. With this, I had my recipe for what I wanted to make. And then I realized I did not know what my ingredients were. The examples showed how to make a box, but how to make a cylinder? I couldn’t really find a list with explanation of all shapes and functions that would be useful for modeling. I did find more examples, and from that I used the cylinder. I’m not going to describe every step I took to create my model. But I can tell you how it went globally: like creating Frankenstein’s monster. Copy here, paste there. Use a part of this example, use a part of that example. Adjusting things to see how it works. Deleting stuff if I didn’t know what it did. If the script stills runs, okay. If not, put it back. It’s not a sustainable approach for creating very complex shapes, but it is a great way to learn new stuff.

shapeJS

In the end, it worked! With the set input from the user (key diameter, key thickness, keyhole diameter, distance keyhole to top) a key sleeve is created. It took most of my Sunday afternoon and evening (and a bit of my Saturday). Next step is getting in the ShapeJS co-creator pilot so this could actually be used for sale. And then it’s time to learn and create more!

New Year, New Tools: Introducing Shapeways 3D tools

Whether you are creating something for yourself or designing something beautiful for your customers, making your product come to life is incredibly rewarding. 3D printing has continually lowered the barrier from having an idea to actually holding your product in your hands.

Ensuring your 3D model can be printed, and understanding how design and material choices impact how you make your model can however be challenging.  The team at Shapeways constantly strives to make that easier, so with the new year, we’re thrilled to introduce a suite of 3D tools to empower you further. The Shapeways 3D tools give you more transparency into how we check your models and to help you check, visualize, and fix potential issues yourself before purchasing your model.

With the success of our wall thickness fixing tool in March of last year, we were inspired to invest in expanding the ways you can view your model against what our 3D Printing Engineers at Shapeways are looking at when you upload a model – our material design guidelines.  So we built 15 tools that let you view your model against our material-specific guidelines: mesh integrity and repair, bounding box, loose shells, part count, wire thickness, details, text, part clearance, escape holes, machine space, weak geometry, texture, interlocking parts, our content policy, and improved our wall thickness tool with a heatmap view.

Heatmap Wall Thickness 3D tools Flower

Each tool enables you to view your model against our design guidelines and clip your model along the x, y, and z axis for x-ray vision so you can identify any potential issues faster and with confidence.

Our tools are grouped into two types: ‘On upload we automatically check…’ and ‘After purchase we manually check…’ Our wall thickness, bounding box, mesh integrity and repair, loose shells, and part count tools in the first group have automatic checks that will show you a green check, yellow warning sign, or a red ‘X’ indicating our initial level of confidence that you will pass that check upon manual inspection post-purchase.  Every automatic check is still subject to a manual check post-purchase.

Machine space, loose shells, and wall thickness tools will also visualize any detected issues on top of your model.  The improved wall thickness and part count tools offer ‘fixes’ to change your model related to the issue in the tool in addition to a heatmap view.  You can also ‘sintershell’ a multi-part model in the part count tool, which encloses your parts inside a mesh, making it easier to handle and sort.  Adding a ‘sintershell’ can sometimes reduce the labor cost of a multi-part model.

Three Visualizations 3D tools Machine Space Loose Shells and Sintershell

Machine Space Visualization, Loose Shells and Sintershell example

These tools are not only helpful before you purchase, but also after you purchase if your model gets rejected.  If your model is rejected, you will receive the email with the detailed information explaining why, as always, but it will be viewable in our 3D tools right next to your model, and directly above our design guidelines – so you can see all the information you need to take action to fix and re-upload your model.

Rejection Inline with Guidelines in 3D tools Flower (1)

We hope that you’ll be as excited by these tools as we are and find them helpful as you design and get ready to 3D print. Upload a new product and read the 3D tools Tutorial or check out 3D tools with your existing models. This is just the beginning of the 3D tools so we’d love to hear about how you are using them, what you find them helpful for and if you have any suggestions. Post a comment or head over to the forum to tell us what you think!

 

 

Free UArtsy 3D Modeling Course for the Shapeways Community Plus a Discount!

wireframe dog

Wireframe Dog designed by CINEMO

The folks at UArtsy have created a free 3D modeling course called Learn Maya: Polygon Modeling with Michael Mckinley. All you have to do is follow the link and register. They’ve also got a great offer for the Shapeways community: 20% off of any course you choose. Simply register and enter the code SHP20OFF upon checkout. The staff at UArtsy recommends 3D Printing for Artists With Joseph Drust and Jewelry Sculpting In ZBrush Fundamentals With Tomas Wittelsbach, as two great starting courses for Shapeways designers.

UArtsy.com is a 3D modeling and sculpting course site started by Ryan Kinglien, the first product manager for ZBrush. The site offers a on-demand and live courses in several techniques.

Go ahead and learn a new 3D skill and make 2015 your year!

Software for Artists Day Sunday November 16th

Shapeways is proud to sponsor Pioneer Works first Software for Artists Day on Sunday November 16th. The day-long event in Red Hook, New York will bring together artists and developers to illustrate the many new software and hardware tools available to contemporary art practice.  It will involve lectures, demonstrations, and conversations which will demystify the most sought-after technology in use today.

Screen Shot 2014-11-13 at 9.34.30 AM

Participants will be able to attend four 45-minute lectures over the course of the day and will also be able to participate in “soapbox sessions” in which they will have 3 minutes to present a project in order to attract interest and/or advice from other artists and technicians.

Shapeways will be on site with some products to show and tips and tricks about using the free software on our site.

Pioneer Works, Red Hook, New York

Sunday November 16th

10am – 7pm

Register here - hope to see you on Sunday!

If you can’t attend, here’s a brief preview of the software available on Shapeways now:

Shapeways API - The Shapeways Upload API enables web and desktop applications to submit 3D models and harness the power of the Shapeways marketplace. You can control pricing, available materials, and add markup to models that are for sale to our community. Read more about the Shapeways API  or join us in our developer forum.

ShapeJS - This tool makes parametric 3D modeling accessible for programmers. If you know Java Script, you can use this tool to generate 3D printable geometry, ias simple as a few lines of code. Read more about the power of ShapeJS here, or jump into the discussion on our developer forum.

Need more inspiration? Check out these amazing 3D creator apps that have been made so far. Got a cool app you’re working on? Tell us about it in the comments!

 

Help with 3D Printing directly from Photoshop CC

You may recall back in January, we announced our partnership with Adobe, who enabled 3D printing directly through Photoshop Creative Cloud to Shapeways.

Using this feature, artists, photographers, designers, and other Photoshop users can create and prepare designs for 3D printing.

Adobe has created two custom video tutorials to help you use Photoshop CC for 3D printing:

Designer Paul Trani, Adobe’s Senior Creative Cloud Evangelist, shows you how he made a custom iPhone case directly from Photoshop with a personalized message: “Create Now”!

Custom iPhone case designed by Paul Trani

Custom iPhone case designed by Paul Trani

To get more hands-on, this Photoshop Creative Cloud Tutorial on 3D Printing is a three-part video course that takes you through an entire design-to-print project in Photoshop.

Source: Adobe HelpX

Source: Adobe HelpX

No matter what your level of design experience, we encourage you to check out the tutorials and give it a shot because they’re super informative and easy to follow.

Shaping the Future of How We Buy: Introducing Beta & First to Try Products

People are demanding more from the products that they spend their hard earned money on. More and more, they are seeking out products created by people they know and trust, made in the cities and towns they call home. In research we did earlier this year, we found that nearly 50% of Americans know someone who is making and selling their own products. From the friend who quit her day job to create beautiful jewelry to someone who wants to make a better bike helmet, there’s no shortage of innovative products being created by independent designers around the world. In large part, they are enabled by the power of the Internet, which has made it even easier for people to sell their own products over the past 20 years.

Product design is also becoming more collaborative. Entrepreneurs are working with their friends and customers to get the support they need throughout the product development process.

Today, we’re excited to officially announce two big additions to Shapeways that we hope will make it easier (and more fun!) for people to create their own products by inviting friends and fans into the creative process.

Now on Shapeways, you’ll see a two new kinds of products: Beta & First to Try.

What’s Beta?

One of the most critical steps in designing a great product is iteration: tweaking a product to perfection by testing and refining the design. You can be a part of the creative process by giving designers feedback when their products are in Beta. Share your thoughts on the design, the aesthetics, the fit, or anything else you think will help make the product even better. There are already over 500 products in Beta on Shapeways — check them out and start collaborating!

Beta products on Shapeways

What’s First to Try?

If you’re the kind of person who can’t wait to get your hands on the latest gadgets, or if you wait in line for movies on opening night, read on.

In the past, you’d have to wait until a product has gone through months or years of development to try it out. With 3D printing, there’s no need to wait. Help bring a product to life by buying it in “First to Try.” These products are in earlier stages of development, so sometimes there are some kinks (no matter how beautiful the render, the laws of physics still exist. In those cases, not to worry, the refund is on us!). Most of the time, though, they’ve been 3D printed in a few of our materials and it’s your chance to try them out in others. Platinum, anyone?

Here at Shapeways, we’re trying to shake up how products are made and by whom. We have makers and designers from all over the world in our community, some of whom are making their first product and others who have been professional product designers for their whole lives. They’re creating everything from jewelry to rocket ships, GoPro accessories to chess sets. It’s your turn to join them.

Note for all the designers and creators out there!

In the short term, here are a few things you can do to take advantage of these new features:

1. Create Your New Material Renders
For all of the materials that you are offering for sale, you can now create realistic renders of each material. You can pose & generate renders for all of your products, regardless of if they have been printed before. Learn more.

2. Tag Materials in Your Photos
If you have photos for each material you are offering for sale, you can tag them so they show up when shoppers select a material on your product page. Learn more.

3. Explore First to Try & Beta
You can learn more about how you can use these new tools to bring your products to market using 3D printing.

We also shared these features with our community a few weeks ago and got some great feedback, some of which is already implemented in this latest iteration. But it’s not too late to join the discussion! We’re in Beta too :) Sign up for future usability testing here.