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.
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.
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.
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.