I was excited to be interviewed last month by Cadalyst and even more excited today to find the interview featured over on their CAD Speed blog. It was great to share what is going on in the industry particularly as it relates to CAD. We talked about the latest trends and offered information about the Public Works Group and our mission. Check out the interview here:
Free 3D Software for Civil Engineers
If you regularly read this blog, you already know we strongly believe 3D visualizations and environments will play a big role in the future of civil engineering. Over the last several years we've seen an increasing use of 3D products to help people better plan and build large-scale developments and structures. Last year, FHWA incorporated 3D into their Every Day Counts initiative, and recently President Obama announced the launch of two new digital manufacturing hubs. It's interesting to note the President's weekly address this week covered those launches along with a push for innovative infrastructure – one day, in our industry, both topics will most likely be closely aligned. But like any change or new innovation, there are naysayers and those who resist the transition, and there is little we can do to change their mind. Like the old draftsman clinging to his ink pen and Leroy set, they will be left behind. Instead of worrying about convincing them, we wanted to reach out to all of you who are looking forward to the future yet might not know where to start or to those of you who might be wondering how to pick up some 3D skills without having to spend a lot of money. Below we've listed several programs available for free or at a low cost. They are grouped by complexity of the software.
Introduction to 3D
Autodesk 123D – an Autodesk suite of free 3D software:
While Autodesk's flagship products like AutoCAD and 3ds Max might have a price tag out of reach for most of us, the company fortunately offers several free products you can use to build your 3D skills. You can even use most of these programs to create a 3D print of your creation! Here's a list of each program you can try out:
123D Catch – a computer, web-based, or mobile-based program allowing you to transform a photo into a 3D object
123D Design – a computer, web-based, or mobile-based program allowing you to create 3D designs
123D Creature – a mobile-based app allowing you to easily create a 3D creature
123D Sculpt – a mobile-based app allowing you to easily sculpt 3D models
123D Meshmixer – a computer-based program allowing you to develop 3D models
Tinkercad – a web-based program allowing you to create 3D models (this is free for personal use at this time, but may in the future transition to a low-cost subscription based program).
SketchUp – SketchUp Make is the free version of the popular 3D modeling program now owned by Trimble.
3D Tin – this free, web-based program allows you to easily create 3D models. You can save and export them and even send them to a 3D printing site. The key thing to keep in mind before using this site is that it requires a specific type of browser. I was able to use the most recent version of Firefox to access it. Below is the screenshot of a few 3D letters I easily created with the object-based tools.
MakeHuman – this is a free, computer-based program that allows you to create human 3D models.
tree[d] – this is a free, computer-based program that allows you to easily create 3D models of trees. Below is a screenshot of the interface.
Intermediate Level 3D
The following programs will most likely require a little more effort to learn than those in the introductory category. Fortunately you can usually find your way around the software by making use of the tutorials and community forums available for each program:
Seamless 3D – this is a free, computer-based program that allows you to create 3D models. Below is a screenshot of the interface.
Sculptris – a free computer-based program allowing you to create 3D organic looking models
AC3D – a low-cost, computer-based program that allows you to create 3D models. At this time, the cost for one license is $89.95. Below is a screenshot of the interface.
Wings3D – this is a free, computer-based program that allows you to create 3D models. Below is a screenshot of the interface showing a model I uploaded of a creature I made using the 123D Creature software on my iPad.
RaySupreme 3D – this is a low-cost, computer-based program that allows you to create 3D models. At this time, the cost of the software is $39.99. Below is a screenshot of the interface showing a rounded cube.
Clara.io – Thanks to Mimetic Core for bringing this site to my attention after I posted this article. The site is in beta, but is very functional and easy to use. I am listing it as intermediate since it appears to offer more advanced 3D features than those included in the Introductory section. This is a free, browser-based program that allows you to create 3D models after you register on the site. There are also several pre-made models available for you to load and edit to get used to the software. You can see the ladybug model in the screenshot below.
Second Life / OpenSim – I'm including these free, computer-based programs even though many in the industry would not probably think of these as 3D modeling packages. This is probably because while both programs have always allowed people to create 3D models, until last year, whatever people created could not be exported for use in other programs. Fortunately within the last several months, a third-party developed the ability to export models created in these environments. So now, people can use the building tools in Second Life or Open Sim environments to easily create a 3D model and then export it. And even though the building of the model is relatively easy, I put the program in the intermediate category because the interface is much different than any of the other programs listed here and might take some time to get used to. This is because instead of just installing a software package and using the commands like a regular program, people build in Second Life/Open Sim by entering the software through an avatar or digital representation of themselves. I included a screenshot of the interface below showing my avatar building a basic cube in Second Life.
Advanced Level 3D Modeling
The programs below are more involved than those listed above. Usually they have more advanced features and the interface is more complicated to navigate. While it will take some time to learn these programs, there are many tutorials and resources available online to help teach you what you need to know to use them.
Blender – this is a free, computer-based program that allows you to create 3D models. Blender is a very advanced tool with complex features including the ability to animate objects and create scenes, video games, and movies. Because of this, it does take some time to learn this program. Fortunately there are many resources and tutorials available.
DAZ 3D Suite of Products
In addition to their higher cost 3D program, Carrara (which is still fairly low-cost at $149.95 and $285.00 for the pro version), DAZ 3D offers several free and low-cost programs. Occasionally they have also allowed a free download of their products for limited times throughout the year. While you might have to devote more time to learning how to use these programs, there are many sites out there offering videos and tutorials to help you learn.
Hexagon – this free, computer-based program allows you to create 3D models. Below is a screenshot of the interface showing a basic 3D object.
DAZ Studio – this is a free, computer-based program that allows you to create 3D models, scenes, and artwork along with animations and poses. While I've posted this in the advanced section so it could be grouped with the other Daz products, DAZ Studio is actually very easy to use. Below is a screenshot of the interface. My main use of it at this time is to create poses for 3D models of people.
Bryce – this is a low-cost (at the time of the post it was selling for $19.95) computer-based program that allows you to create 3D environments
Unity3D – this is a free, computer-based program that can be used to create 3D models. However, most people seem to be using this program to develop 3D environments into which they place 3D models made in other programs. Unity3D is a full-featured, advanced software package that takes some time to learn. Like the other programs listed in this post, there are many sites available online where you can find tutorials and other educational resources to help teach you how to use it. There is also a higher cost pro version of the program available, but most people can get by using the free version – particularly if you are just trying to become familiar with 3D modeling. Below is a screenshot of the interface of the free version showing a scene I created by following a tutorial.
(Post updated March 2, 2014 to add Clara.io site)
Resources for Developing your 3D Engineering Skills
If you've been paying any attention to the Every Day Counts website, you might have noticed that 3D Engineered Models are now being promoted by the Every Day Counts program. This is because of the potential for this type of technology to cost effectively accelerate construction. However, in addition to this, 3D engineered models offer many other benefits including the ability to better plan and visualize designs and enhance public outreach. If you or your agency or firm have not yet integrated 3D models into your process and are interested in learning more about this technology, you can check out the growing number of resources posted on the FHWA 3D Engineered Models Website at http://www.fhwa.dot.gov/construction/3d/.
Their site offers links to examples of how 3D models have been used in projects along with links to manuals and other guidance of how to integrate and develop 3D models in your own projects. At the end of last year, FHWA also started a year-long webinar training series. Below is a listing of the topics they are offering. You can view past webinars or sign up for future ones at the link given above.
Future Webinars
Applications of 3D Models in the Construction Office February 19, 2014 1:00 p.m. – 2:30 p.m. Eastern
Applications of 3D Models on the Construction Site April 2, 2014 1:00 p.m. – 2:30 p.m. Eastern
Managing and Sharing 3D Models for Construction May 7, 2014 1:00 p.m. – 2:30 p.m. Eastern
Overcoming Impediments to Using 3D Engineered Models for Construction September 10, 2014 1:00 p.m. – 2:30 p.m. Eastern
Steps to Requiring 3D Engineered Models for Construction October 15, 2014 1:00 p.m. – 2:30 p.m. Eastern
The Future: Adding Time, Cost and Other Information to 3D Models November 19, 2014 1:00 p.m. – 2:30 p.m. Eastern
Past Webinars
Overview of 3D Engineered Models for Construction November 20, 2013 1:00 p.m. – 2:30 p.m. Eastern
Creating 3D Engineered Models January 8, 2014 1:00 p.m. – 2:30 p.m. Eastern
Source of Photo used in post: Roadway Design Visualization – Natchez Trace Parkway, MS, http://www.efl.fhwa.dot.gov/technology/Road-VS/Natchez-Trace-Parkway/natchez-trace-parkway.aspx
“We are engineers; we are not gamers”
Over the past several years, most people I knew in the industry chose to ignore what was going on with 3D immersive technology. At one point they might have taken a quick look, realized gaming engines like Second Life were not easily compatible with the CAD products we used, and moved on. Until more recently this compatibility issue might have been true. But thanks to some innovative developments over the last year, it's probably a good idea for the industry to start paying more attention.
There are a few examples out there that were created over the past few years by some of us in the AEC industry demonstrating what can be done with software like Second Life and related tools like OpenSimulator (OpenSim). While most of us set up small concept builds, some people like Jon Brouchoud developed larger models to assist cities in urban planning using products like Unity3D. And companies like Daden have taken a project from concepts created in Second Life through to the final construction and ribbon cutting of the actual building (Birmingham Library). But the challenge was always integrating our work in CAD with these 3D software packages – there just was no capability to move our work between the two environments. Initially it seemed it could not be done because software like Second Life or OpenSimulator would not allow imports of 3D objects created in CAD or other 3D software. But eventually Second Life and OpenSim developed the ability to allow mesh objects to be brought into the environment. Then the problem became trying to apply the textures or images to those imported 3D objects. We were used to easily and quickly applying textures to 3D objects created in Second Life/OpenSim. However, we did not have this same functionality with imported 3D models. Below is a building I created entirely in OpenSim. The textures you see on the building were also applied directly to the building in that software. If I wanted to change one of them all I would have to do is choose the element I want to change then select a new color or texture.
But if this object had been imported, I could not as easily change the images or colors applied to it since the textures would have been created and mapped to specific elements of the object in another program. You can only change the individual colors or textures by going back into a 3D editing program or another graphic program and changing the texture or the mapping there. You could not swap them out in Second Life/OpenSim or Unity3D.
Another problem was that you could not easily export a 3D build created in a place like Second Life or OpenSim for use in CAD or other 3D programs. This functionality would be highly useful for engineers and architects who could develop a concept build in Second Life/OpenSim and then export to a CAD program for development of final plans. It would also be useful to export objects for use in Unity3D because builds created in that software can be set up to be viewed by anyone through a web browser – no special software viewer is needed. This lack of ability to export work turned away a lot of engineers because they would not want to spend a lot of time building something in Second Life or OpenSim then have to recreate it in CAD.
The good news is that all these issues with importing, exporting, and texturing seem to have been solved. The solution came about through a third party provider of the viewer software used to access the 3D environment of places like Second Life and OpenSim. In the photo below I am using the most recent Singularity viewer to export the 3D object I created in OpenSim. As part of the the export process, the textures are automatically mapped to the right locations. It took no time at all to export the building to my computer as a Collada file.
After exporting the building and textures, I opened up Unity3D to see how easy it would be to bring the building into that environment. I imported the 3D object I had exported from OpenSim. Then I imported each texture I had used in OpenSim. They mapped into the correct place for each component as I brought them into the folder. All I had to do was change the color for the floor since the original texture is white rather than dark gray. As you can see from the image below, the only texture issue I still need to address is the transparency of the windows. (If you want to try visiting this very simple build, just click this link and wait for it to load. You can move around using your mouse and arrow keys once it is loaded. Public Works Group Building Test Site)
So the bottom line on this is that because of the developments in the Second Life and OpenSim software and in the Singularity viewer, 3D objects and their textures can now be easily and quickly exported from these environments and brought into any other software that accepts a Collada file. And any Collada file can easily be imported into the Second Life/OpenSim environment. Because of this we can now make a 3D object that is textured and to scale using software like Second Life or OpenSim (which by the way is free to download and use although Second Life does charge a very small fee for texture uploads) then export this object for use in any other program that accepts a Collada file. Now, the surprising point in all this for me was that at no point in this work flow did I use CAD at all to create these objects. I guess I had always thought I would want to create the object in CAD and only bring it into these environments for visualization and simulation. But because of these developments now I can do all that entirely without using CAD.
However, I was still thinking I would eventually want to bring this into CAD when I am ready to create the actual plans. But based on a few conversations I had over the last week I'm starting to wonder if that is the direction I should be thinking. The first feedback I received was from a representative of one of the two major civil CAD companies. We talked a little about integrating CAD with gaming engines before he gave a presentation at a conference I attended. Then during his presentation, he announced, "we are engineers; we are not gamers." After hearing this definitive rejection by a major CAD company of all that looks, smells, or feels like a gaming engine, I was happy to find a totally opposite viewpoint from a representative of the other large civil CAD company. That person had called me to share his excitement at seeing how his company is integrating the code used for their own 3D and animation products into their Civil CAD product. He also said they were adding the ability to read and use data in the CAD environment and were about to release a cloud subscription package. While I was excited to hear about these advances, I was particularly interested in the cloud package. His company's software can already import/export 3D models while the other cannot. And If the cloud package is affordable enough, I was thinking I might be able to take advantage of that option.
My final conversation regarding 3D models occurred with another engineer during a meeting. He shared with us a picture of a culvert he created in Google Sketchup. He was impressed because he could use free software to easily create something that allowed all of us to better visualize his design. His opinion was basically why use something as complicated and expensive as CAD when you get such great results from a low cost program that is so easy to use.
So after mulling all that over in my mind, I started wondering if someday we won't need CAD anymore. Perhaps one day engineers will build entirely in a "gaming engine" then export the file to suppliers and contractors who have their own software driven equipment that can calculate quantities, order materials, and develop and ship what is needed to assemble it all on site. I realize this might seem a little farfetched today, but is it really impossible? After all, without ever touching CAD, I already have the ability to take the file I exported of my 3D building built entirely in OpenSim that you see in the photos above and send it to any one of the many 3D printing companies and have it "constructed." So, is it really so wrong to think this could some day be done on a larger scale?
Are Gaming Engines the New CAD?
Over the past few years, I've spent considerable time online exploring many different virtual worlds or 3D immersive spaces. Some of these like World of Warcraft are designed to only offer a gaming experience while others like Second Life look like a game, but do not offer gaming as a primary function. My main reason for first visiting these environments was to explore their potential for supporting my work as a civil engineer. Even my decision to try out World of Warcraft was based on this – I only joined and started playing so I could attend a science conference held there in Spring of 2008. Of course, in my journey into 3D, I found there was so much more than what I could have imagined. While my focus had been on the use of these spaces to create or learn, I eventually realized these are actual places where people hang out and spend time with each other. Through the years, I've come to enjoy and appreciate the "metaverse" as a place to meet incredible people, attend classes or other events, or just spend some time having fun. But I've also continued to explore the possibility of using these spaces for my work. And even though I don't yet have any conclusions, I wanted to post some thoughts on how the technology is evolving to better fit into the delivery of AEC services.
Background
After my first few visits to Second Life, I began learning to build and create 3D content using their software. Coming from a primarily 2D CAD background with only some experience in 3D, I didn't at first pick up on the 3D modeling foundation built into the Second Life tools. However, for building and creating in Second Life, this really wasn't a problem – the creators of the software made the tool so user-friendly that you really didn't need to know anything at all about 3D modeling or CAD to create something. But one frustrating issue for people who do use CAD was the inability to easily import into Second Life something that was drawn in a CAD program. We also could not export something we built in Second Life to CAD. And this seemed to be the main reason most people I showed Second Life to didn't think it would be useful in our work.
Although Second Life still does not allow import/export of CAD drawings, the software was eventually changed to allow the use of 3D models. This development of alternative methods for creating objects in Second Life led me to work more diligently on developing my 3D modeling skills. As I started using programs like Blender, I was better able to see the similarities between the foundation of building in Second Life and 3D modeling. And my building experience in Second Life helped me to better understand and pick up 3D modeling skills.
Current State
Over the last few years, software has been developed by other companies to allow people to create virtual spaces. Most are not exactly like Second Life, but they are similar. Many offer the ability to import 3D models, but most don't offer the same flexibility found in Second Life to easily create objects entirely within the software. The only other software I have found with the same ease of use for building objects entirely within the software is Open Simulator (OpenSim) – a spin-off of Second Life. Other programs, like Unity3D, rely heavily on the import of 3D models. Based on my use of these programs, I've listed below a few of my observations in using these packages to create a representation of an AEC project:
- Many AEC projects require the ground to be shown. If a contour file for the project is available, this information can be used by changing it into the proper format. The user can then apply these contours to the ground in both Second Life/OpenSim and Unity3D. (You can learn the most about doing this in Second Life/OpenSim by visiting Darb Dabney's blog: http://blog.3dg.is/.) In Second Life/OpenSim there is also an option to create ground from an object rather than the default ground or terrain.
- Landscaping is also an important part of most AEC projects. In Second Life/OpenSim landscaping is created the same way everything other than the ground is created – by using objects. In Unity3D, generating landscaping is very easy because there are specific tools for creating trees and plants.
- Design components present more of a challenge than the ground and landscaping. While tools like Second Life/OpenSim and Unity3D allow for the import of 3D models, neither work seamlessly with standard AEC CAD tools. So to create a road project, I could make a 3D model of it in a modeling program and import it. But I have not yet found a way to make sure the import retains the proper dimensions – in Second Life and in Unity3D, I've had to mess with the scale and then worry if the object is the correct size. I could try to work within the programs and create objects directly in the environment. This works well in Second Life/OpenSim but only for linear alignments – horizontal and vertical. And if I create only within the software, I am limited to the use of basic shapes. More complex shapes can only be accurately created using a 3D modeling program and imported in.
- And this brings me to the issue of texturing or applying the "pictures" or graphics to the objects. Texturing an object finalizes its appearance and helps make objects appear more real so it is very important. In Second Life/OpenSim each object created has a plywood texture or look as a default. In Unity3D, the object is white by default. What I've found is there's a lot of flexibility in texturing objects within Second Life/OpenSim, but not so much in Unity3D. For example, if I wanted to create a cube with six different textures on each face, this is easily done in Second Life/OpenSim by creating a basic cube object, clicking each face, and choosing the corresponding image to apply. But to do this in Unity3D, I have to create additional objects on which to apply the texture then attach each object to the corresponding face of my cube. Another method of doing this in Unity3D is to create an image file that when applied to the 3D object will wrap the correct texture around the object so that the proper image ends up on each face. While the wrapped image sounds fairly easy, the problem is that each time I want to change the image on one face, I have to create a new image to wrap around the cube. Unity3D is applying one image to the cube as a standard 3D modeling program would while Second Life/OpenSim offers the ability to apply different images to different parts of a model.
- If you want others to visit your virtual project site, it's probably easiest to do so using Unity3D because it's easily accessed through a browser. Second Life/OpenSim require the download and installation of a viewer software program and registration to allow the user to log in. Both formats allow for both single user access and multiple user access. (Unity3D can be accessed by multiple users through an application like Jibe.)
- Both programs allow for the ability to program objects, but the programming language and interface within Unity3D is more common and flexible.
- Neither program seems to have an easy export out to CAD.
So based on the above points, a designer would choose between Second Life/OpenSim and Unity3D based on the project needs. If the final product would need to retain the flexibility to be changed, it's best to probably stick with something like Second Life/OpenSim. But if once completed, the project will probably not be changed, it's best to keep it in Unity3D. Fortunately at least two companies (Arch Virtual/Tipodean Technologies and Rezzable) are offering methods to either convert a project built in OpenSim to Unity3D or the ability to view a project built in OpenSim through a Unity3D viewer. So if a user wanted the flexibility of creation offered by OpenSim but the ease of access of Unity3D and didn't anitipate needing to change much after it was completed, they could build the project in OpenSim and convert to Unity3D or view through a Unity3D "window." The need for programming flexibility might also play a part in the decision, particularly if someone wanted to model traffic through a project site.
The Future
One of the big complaints about Second Life is that they don't understand their users. I sometimes wonder if it's because they set out to create a type of modeling or CAD tool and ended up unintentionally creating a place. And because they still view themselves as a software company creating tools, they have a diffcult time understanding how to manage and deal with this other aspect of their creation including the fact that most users want to use it as a place. (On a side note, I also work for a city so understand well the community management side of this and have been fascinated to watch how the company handles the same exact issues we face every day in our cities.) I am also not sure they are planning on shifting focus away from this "software first" attitude. They have made acquisitions and statements that lead me to believe they are further developing features and tools that could possibly enhance their existing offering. And because right now their creation tools offer the most flexibility, I am hoping they are moving in this direction even though I do also wish they would embrace the social side of their creation.
As for Unity3D, I think we will see the users develop the path through which this software can be implemented for AEC users. Perhaps with plug-ins and other developments with 3D modeling, this software might one day be better suited for renderings of AEC projects. Right now, one of the best examples of this type of use has been created by Jon Brouchoud working with his wife, Kandy, and Chris Collins. They have created a virtual representation of the downtown area of Dubuque, Iowa. Their project is also promoted on Kickstarter where people can donate to development of additional features. You can learn more about this project by clicking the widget below:
Most of you working in the AEC industry might wonder where our traditional CAD companies are in all of this. Unfortunately, the real innovation in 3D visualizations for the average user is not coming from Autodesk or Bentley. While Autodesk has amazing products that cover many of the aspects of the discussion above, they have not created a seamless path between them. And their programs seem to have a much steeper learning curve than those discussed above – not one person I have talked to who uses Civil3D has said it was a quick or easy program to learn. And there's just not been a strong showing by Bentley in the 3D arena.
The other side of all this is the cost. Anyone can use the Second Life/OpenSim/Unity3D tools for free while CAD programs from Autodesk and Bentley cost way too much for the average person to purchase and maintain a subscription. Perhaps if Autodesk one day better integrates all their tools, designs the tools with an easier user interface or improves the learning curve, and the price becomes more reasonable for the average user, they would most likely have an edge – particularly because many firms already have their CAD software. But based on the movement by these other companies, I wonder if one day in the future we'll be developing plans primarily using 3D modeling tools like Blender/Hexagon/ZBrush and gaming engines or tools like Unity3D and Second Life/OpenSim.
Checking out West Coast Tech Talk
Part of the fun of blogging is the opportunity to connect with others who love what you do. In my case, that's anything public works related! One of the people I recently talked to online was @lahtnesorm. He's a civil engineering technology student on Vancouver Island who blogs about CAD. His site has helpful information about CAD in general, and lately he has been blogging about his experiences in learning Autodesk's Civil 3D. You can check it out here: http://www.wctechtalk.com/category/civil-3d-13-weeks-of-learning/
I like reading his posts about Civil 3D because although I am proficient with Map 3D, I have yet to jump into Civil 3D. So his posts are helping me better understand the commitment and effort required to learn that software. And the articles share the benefits he is finding from using the software.