Introduction: Turn a 2D Image Into a 3D Model

Picture of Turn a 2D Image Into a 3D Model

Ever want to take a 2D image and turn it into a 3D model? This instructable will show you how with a free script and Fusion 360.

What You'll Need

Fusion 360 (Mac / Windows)

What You'll Do

  1. Download and install Fusion 360. Click here to sign up for free as a Hobbyist / Enthusiast / Startup or as a Student or Educator.
  2. Get a quick orientation of the user interface.
  3. Download and install a script that will let you turn a 2D image into a 3D surface.
  4. Use the script to create a 3D surface for CNC milling.

Step 1: Why Fusion 360?

Fusion 360 is pretty much all I use nowadays in terms of 3D software. FULL DISCLOSURE: Fusion 360 is an Autodesk product, and Instructables is an Autodesk company, so this might seem like a biased choice. That's not exactly the case, and here's why:

  1. It's easy to learn. The UI has been carefully designed from the ground up to be clean, minimal, and simple. You can go from zero knowledge about 3D modeling to making simple objects in an afternoon.
  2. It's powerful. Once you get through the basics, there's really no limit to the complexity of the things you can design with it. It's easy to create simple models with it, but there's nothing holding you back from modeling a fully articulated gas engine if you want to.
  3. It's cross-platform. It's available on Mac and PC, and it's proven to be very stable on both platforms in my experience.
  4. It's great for CNC. Fusion has a super sophisticated CAM environment that lets you create all kinds of tool paths, which we'll get into later. It's really awesome to have the CAD and CAM together in the same program, because when you change your model, the tool paths update automatically.
  5. It's free. If you make less than $100K per year using it, you just renew with a startup license every year and keep using it free of charge.
  6. It's not a web app. Though all your files are backed up on the cloud and rendering is taken care of there, you don't have to rely on a high-speed internet connection to use the program.

I've been 3D modeling for over 13 years, and I can tell you honestly that this program is perfect for the kind of work I do: furniture, toys, machines, household products, etc. It makes digital fabrication a breeze, especially laser cutting.

There are a number of other programs out there that could be used to produce the same results, and if you're comfortable with something else (especially if you've already paid for it), there's no reason why you shouldn't stick with it. But if you haven't spent any money or invested time in another program, believe me when I say you won't be sorry you went with Fusion 360.

Step 2: Get Fusion for Free

If you haven't already, go to the Tools and Materials lesson in the CNC Class and follow the instructions there to download and install Fusion for free as a hobbyist / student / educator.

Step 3: The Fusion Interface

Fusion 360 has a great Youtube channel with lots of helpful videos. If you're the type of person who likes to learn software by going through every function it can perform, this channel is a good place to start. The overview here should get you pretty well oriented to the interface and give you an idea of how the program works.

But before we dive into a full-fledged 3D model, I'll quickly run through the interface.

PRO TIP: Use a 3-button mouse! It's so much easier than using a trackpad.

  1. Application bar: Access the Data Panel, file operations, save, undo and redo.
  2. Profile and help: In Profile, you can control your profile and account settings, or use the help menu to continue your learning or get help in troubleshooting.
  3. Toolbar: Use the Toolbar to select the workspace you want to work in, and the tool you want to use in the workspace selected.
  4. ViewCube: Use the ViewCube to orbit your design or view the design from standard view positions.
  5. Browser: The browser lists objects in your design. Use the browser to make changes to objects and control visibility of objects.
  6. Canvas and marking menu: Left click to select objects in the canvas (the space where you make your models). Right-click to access the marking menu. The marking menu contains frequently used commands in the wheel and all commands in the overflow menu.
  7. Timeline: The timeline lists operations performed on your design. Right-click operations in the timeline to make changes. Drag operations to change the order they are calculated.
  8. Navigation bar and display settings: The navigation bar contains commands used to zoom, pan, and orbit your design. The display settings control the appearance of the interface and how designs are displayed in canvas.

Step 4: Canvas Navigation

There are three ways to manipulate the view of your design:

  • Navigation Bar
  • ViewCube
  • Wheel button on a mouse

Navigation Bar

The navigation bar is positioned at the bottom of the canvas. It provides access to navigation commands. The menus on the right end control Display Settings and Layout Grid options.

To start a navigation command, click a button on the navigation bar.

Navigation Commands

  • Orbit: A set of commands that rotate the current view.
  • Look At: Views faces of a model from a selected plane.
  • Pan: Moves the view parallel to the screen.
  • Zoom: Increases or decreases the magnification of the current view.
  • Fit: Positions the entire model on the screen.

Display Settings

Set of commands that enables you to specify desired visual style, visibility of objects, or camera settings, for example.

Grid and Snaps

Commands that allow you to specify increments, grid settings, and show / hide the layout grid.

Viewports

Viewports are windows that display your design. You can show up to four viewports in the canvas at once. Displaying multiple viewports allows you to work in one view and see the changes from other camera positions.

ViewCube

Use the ViewCube to rotate the camera. Drag the ViewCube to perform a free orbit. Click faces and corners of the cube to access standard orthographic and isometric views.

Mouse: Use mouse shortcuts to zoom in/out, pan the view and orbit the view.

  • Scroll middle mouse button to zoom in or zoom out.
  • Click and hold the middle mouse button to pan the view.
  • Shift Key + middle mouse button to orbit the view.

Trackpad: If you have a Mac with a touchpad or an Apple Magic Mouse, you can use multi-touch gestures to navigate the view.

Step 5: Image-2-Surface Script

"Script" is shorthand for a bit of code that you can plug into the program to give it a new tool that wasn't included by the software developer. There are dozens of scripts that allow you to do some pretty awesome things.

To translate a 2D bitmap image to a 3D surface for CNC milling, we're going to use the Image-2-Surface script written by Hans Kellner.

The script is very simple. All it does is translate the value (level of lightness or darkness) of a bitmap image to the height of a point on a mesh surface. The white parts of an image will be the highest points, and the black parts will be the lowest points. This script will work with any photo, but I find it's best to use grayscale images because it's easier to predict what it will look like in 3D.

INSTALL THE SCRIPT

First, download the Zip file attached belo and unzip it in a location of your choice. I would advise keeping it some place other than the Downloads folder, or any other folder that is regularly cleaned out.

To load the script in Fusion, follow these steps:

  1. Start Fusion 360 and then select the ADD-INS > Scripts and Add-Ins... menu item.
  2. The Scripts and Add-Ins dialog will appear and display the My Scripts and Sample Scripts folders.
  3. Select one of the My Scripts folders, then click on the + icon near the top of the dialog.
  4. Locate the Image2Surface.js file in the folder you copied, select it, and click Open. The script should now be installed and ready to be run.

Scripts and Add-Ins Menu

Step 6: Use the Image 2 Surface Script

RUN THE SCRIPT

After opening Fusion, I save the untitled file with a new name.

With my file saved, and the Workspace set to MODEL, I go to ADD-INS > Scripts and Add-Ins... I select Image2Surface from the list and click Run.

CHOOSE A BITMAP IMAGE

The script opens a window where you can choose a bitmap image. I'm using a topographical map of the Monterey Canyons in Santa Cruz.

IMPORTANT: the image should be a small size. The higher the resolution, the more points on the mesh, which means slower performance or crashing. The image I'm using is less than 300 X 300 PX and seems to work fine. Notice also that the image is blurred- this makes for a smoother mesh.

To find good images for practice, just do a google search for "depth map image" and you'll see lots of images that are ready for this kind of work.

If you want to follow along, you can right-click and download the image below and use it to create your 3D surface.

Santa Cruz Canyons File: 288 X 288 PX

SETTINGS

When you've selected your image, click OK and you'll get the Image2Surface script dialog. Here's a breakdown of the settings and what they mean. There's a lot of technical jargon that we won't get into here, but I find that a good place to start learning about this kind of thing is to just play around with the settings and see what happens. The settings shown in the screenshot below seem to yield the best results.

You may want to invert your image depending on what it is. When your settings are dialed in, click OK, and the script will make the surface. IMPORTANT: Export format must be set to OBJ in order for the surface to be usable for CNC work later.

Mesh created by the Image-2-Surface script by Hans Kellner

TROUBLESHOOTING

Is Fusion freezing or crashing when you try to run the script? Chances are, your image is too large. Keep it under 300 X 300 pixels and it shouldn't be a problem. The smaller the image, the faster the processing.

NON-WORKING SCRIPT

If the script isn't behaving as described even though you followed the instructions, I would suggest looking at this thread on the Autodesk Knowledge Base: https://knowledge.autodesk.com/support/fusion-360...

Usually when a script isn't working, it's because it wasn't installed properly.

Step 7: Convert Surface to T-Spline Geometry

The surface the script creates is a Polygon Mesh surface. This type of surface is made up of facets with edges and points. If you zoom in, you'll see that there are no curved surfaces.

This type of geometry can't be used to make g-code toolpaths, so we'll need to convert it to T-Spline geometry. A t-spline is a type of NURBS geometry that works with control points that affect a flexible surface.

You're going to need a T-Spline geometry to create your CNC tool path, so click the CREATE > Create Form tool from the menu. This tool takes you into the SCULPT workspace.

Next, click UTILITES > Convert and select Mesh Body in the Selection Filter. Now click the mesh surface that the script created and click OK. Now it's time to be patient and let the program do its work converting the surface to a T-Spline body- it might take a couple of minutes.

Click FINISH FORM and Fusion will go back to the MODEL workspace.

PLACE THE SURFACE WITHIN A BLOCK

In order to better visualize what you're going to cut out on the CNC, it's a good idea to create a solid form. First, select the surface in the Bodies folder in the BROWSER on the left-hand side of the screen. Then Right-Click anywhere on the screen and select Move from the menu.

Looking at the surface from the side, rotate it 90º so that the top of the surface is facing up.

The size of the surface is based completely on the original bitmap image, so now you'll need to scale it to fit the actual size of the piece you want to cut out. To do this, make sure the body is selected in the BROWSER and go to MODIFY > Scale in the menu. Click Point and select the model origin.

NOTE: You may need to turn on Origin in the browser in order to see it.

Looking at the surface from the Top view, change the Scale Factor so that the surface fits within the size of the piece you want to cut out. I'm going to use a 3" X 3" piece of wood, so I'm looking for a scale factor that will give me a SURFACE that's just slightly BIGGER than 3" X 3". I can see how big it is on the layout grid.

Now that the surface is in place, create a box to represent the material to be cut out. I'm using a 3" X 3" X .76" square, so I go to CREATE > Box and click the model origin as my starting point. The box command asks for a width, a depth, and a height, which you can enter by typing a number and pressing Tab.

I can see that the surface to be cut is actually taller than the material to be cut, so not I need to scale the surface down in the Y dimension. I use the Scale tool again, and change Scale Type to Non Uniform. This option will let you scale in any dimension independently. For Y Distance, Choose a number that gives you some breathing room for the surface to fit within the block.

To move the surface closer to the top of the block, Right - Click > Move the surface up in the Y direction so that it's just below the top of the block.

CREATE A SOLID SURFACE

With both the block and the surface in place, go to MODIFY > Replace Face. Like every other tool in Fusion, it tells you what it needs to work. First, select the Source Face, which in this case is the top surface of the block. Then, click Select under Target Faces and select the surface you just converted from the original mesh. Click Okay, then turn off the original body in the BROWSER and you'll see the finished surface that you'll be making on the CNC.

SHOW US WHAT YOU GOT

If you gave it a try, please post your results here!

Comments

Menneset (author)2017-09-16

OK, I am stuck on installing the script. I get a message that "a single script cannot be identified in the selected folder. Please organize your programs so each script is in its own folder." I am sure the issue is the utils.js file which is in the same folder, what should I do with it?

Menneset (author)Menneset2017-09-16

To answer my own question, I moved utils.js to my desktop, registered the script as per the instructable, and then moved utils.js back into the folder. I am sure that is not how it is supposed to happen, but it seems to work fine.

JON-A-TRON (author)Menneset2017-09-17

Thanks for sharing your solution. Scripts act weird sometimes. When in doubt, delete and replace...

McUsher made it! (author)2017-09-14

Thanks for the tutorial :)

JON-A-TRON (author)McUsher2017-09-15

Nice! Going to CNC it?

McUsher (author)JON-A-TRON2017-09-15

I did 3D-Print it already: It has a flat surface with nothing to see and when the light shines through, the images appears. I think i am going to make a night light or such with it.

Gluboy made it! (author)2017-05-15

Thank you really much for this instructable. I finally managed to get this Tahoe map :)

JON-A-TRON (author)Gluboy2017-05-16

You even got the little Island in Emerald Bay! Is there a tiny castle on top of it?

Gluboy made it! (author)JON-A-TRON2017-05-16

That's it, what a fantastic place!

Well, I cheated a little with a picture editor. As Fusion 360 is using gray shades I added a bit of white there. And to get the sharp shoreline I just chopped the top in Inventor.

Here's the base pic :)

JON-A-TRON (author)Gluboy2017-05-17

you've got the hang of it- it's all about using multiple tools to get the result you want.

craig_merriman made it! (author)2017-05-16

taking it one step further by printing the terrain inside out & mirroring the X axis, a mold positive for kiln glass is created. Duplicated in refractory material, filled with powdered & sheet glass then fired in a kiln.

Dude! This is fantastic!

rojas_ctcs made it! (author)2017-01-11

It was a good introduction, in some part I was confused with some instructions but I was able to finish this part

JON-A-TRON (author)rojas_ctcs2017-05-16

It's kind of a weird process given that you're using a 3rd party script, but I'm glad you got it to work.

julawrey made it! (author)2017-01-05

Done! It's oahu

JON-A-TRON (author)julawrey2017-01-10

Great work! I can't even see any scalloping.

kkistler made it! (author)2016-12-28

"You're gonna need a bigger boat." (A CNC-carved one, of course.)

JON-A-TRON (author)kkistler2017-01-03

I've been dying to use a CNC to make a boat. Lots of people do... http://www.shopbottools.com/mApplications/boatbuilding.htm

kkistler (author)JON-A-TRON2017-01-03

:-)

AttilaH10 made it! (author)2017-01-03

Done!

JON-A-TRON (author)AttilaH102017-01-03

Nice pattern

bgittings made it! (author)2016-12-27

Made a BitMoji Stamp of my face

JON-A-TRON (author)bgittings2017-01-03

Nice!

sapikcr made it! (author)2017-01-02

Done!

LuisM164 made it! (author)2016-12-30

I made it!

ghiggi made it! (author)2016-12-30

Project 1

ChrystianB made it! (author)2016-12-23

like a sample

NicolasB50 made it! (author)2016-12-17

Made a relief of the north bay area!

JON-A-TRON (author)NicolasB502016-12-21

Good resolution!

NicolasB50 (author)JON-A-TRON2016-12-21

Thanks! Unfortunately, because a lot of this relief is at sea level, I had a lot of problems getting the toolpath to get everything and keep a good detail. My Taig micromill currently only holds a 60mm piece!

Xavlyon73 made it! (author)2016-12-15

Done.

After many tries and computer change (due to slow working), finally I made it !

JON-A-TRON (author)Xavlyon732016-12-15

Yeah, this is a very taxing script. I've found that it always works for me if I wait for it to calculate.

Renauld made it! (author)2016-12-01

Like all your collegue from wood to 3D print you didn't proof your
tutorial with real (ignorant but willing) people. Bottom line one has to
waste an enormous amount of time to achieve the task. In this case
forgetting to mention that the top side of the box shound be smaller
than the surface. Lost more that one hour on this one.

JON-A-TRON (author)Renauld2016-12-04

That issue is covered in the text: "Looking at the surface from the Top view, change the Scale Factor so that the surface fits within the size of the piece you want to cut out. I'm going to use a 3" X 3" piece of wood, so I'm looking for a scale factor that will give me a surface that's just slightly bigger than 3" X 3". I can see how big it is on the layout grid."

Anyway, glad you figured it out.

shallnot (author)JON-A-TRON2016-12-14

The wording is still off in that you are say that something larger than 3"x3" is going to fit in an area 3"x 3". It's akin to saying "here's a 1.25" x 1.25" x 1.25" cube. Try and put it in that 1" x 1" x 1" hole."

Renauld (author)JON-A-TRON2016-12-10

My bad. For my defense I reread 10 time the step "Create a solid surface", but not the prvious step. Remenber that more than half of your audience are foreigner and a small turn of phrase is often missed.

mikedip (author)Renauld2016-12-01

Thanks for the tip. I completely missed that the top side of the box needed to be smaller. Once I tried that and simplified the resolution of the image I finally got it to work.

GabrielC115 made it! (author)2016-12-12

awesomestuff

MaríaZ7 made it! (author)2016-12-08

Had a few issues learning to work with the dimensions of Fusion 360 but finaly I made it

jkimball made it! (author)2016-12-08

It took me a few tries before I realized that .pngs do not count as a "bitmap" image.

stevempotter made it! (author)2016-12-05

How to create depth map images of my favorite terrain? Is there a way to get a depth map image from Google Earth?

JON-A-TRON (author)stevempotter2016-12-06

It's tricky- you'd basically have to trace them by hand in photoshop. I made the one attached in the lesson based on a USGS image that was already color / value mapped so that the lowest points were the darkest, then made it black and white so I could anticipate the shape a bit better.

jkimball (author)JON-A-TRON2016-12-08

With a moderate amount of processing, you could get arbitrary maps by using the data from here:
http://terrain.party

The scale would have to be adjusted, but it appears to have excellent coverage of a lot of the world.

foxdog178 made it! (author)2016-12-08

Took a few attempts but got it to work.

Mr. AlfredoA made it! (author)2016-12-05

Test project from JPG

mikedip made it! (author)2016-12-01

I finally got it to work. My first attempt was to make a pendent, but the resolution of around 1000x1000 was just to much and Fusion locked up. I Second mistake was I didn't have the image object size bigger than the top of the box, and the error message was not very informative. Thanks to others for the tips and sharing their learning. After several attempts and going to the simplest image cropped down to less than 250 x 250 everything magically worked. Moving on to cutting!

JON-A-TRON (author)mikedip2016-12-04

Glad you figured it out. Remember this is a Script made by a 3rd party, not an integral part of Fusion, so it's pretty buggy. If you're on a PC, you can use ArtCAM from the next lesson to do stuff like this. It makes amazing 3D models in the blink of an eye out of hi-res images.

ProstoPutnik. made it! (author)2016-12-02

I definitely need more powerful desktop... P6200 @2.13GHz and 3GB ram is not enough :(

But I did it!!! :)

JON-A-TRON (author)ProstoPutnik.2016-12-04

Yeah, that script is super taxing. Modeling stuff yourself goes much faster and takes fewer computer resources.

mikeasaurus made it! (author)2016-12-02

Went a little abstract going for a textured background.

About This Instructable

36,237views

274favorites

License:

Bio: I'm a full-time Designer at the Instructables Design Studio (best job ever). My background is in residential architecture, film set design, film animatronics, media ... More »
More by JON-A-TRON:Spiral Art Fidget Spinner3D Printed Indexing Gears3D Printed Coin Shuffleboard
Add instructable to: