3D on the Web
Pure Java

Source Code
Java Applet I
Java Applet II

Web Sites
Mailing Lists

Advice to Beginners
3D technology is a very broad field. Creating 3D images requires tools, artistic creativity, and skills that can only be learned over time. Writing 3D tools requires a completely different set of skills.

Tool Users Programmers

Return to top of document

Tool Users

There are a wide variety of tools out there which can help a user create 3D images - too many for any one person to be skilled at using them all.

If you are a new-comer to 3D technology, do not rush out and buy one of the expensive top five programs (see my list elsewhere in this site). It takes a considerable amount of time to become proficient in any one of the tools and there are such significant differences in them that learning one does not mean you can use any of the others.

If you're going to be a paid professional 3D graphics designer/artist, you will undoubtedly use one of the major tools.

Take the time to figure out what you want for your end product - what your objects will contain, what features the images must incorporate, how much time your can spend creating the images, etc. Once you've done that review the specs for the applications and look on the web to find examples of images made with that tool. Once your comformtable that the tool can result in an image of the type that you want, go ahead and make the investment to purchase the tool.

Because no one tool has all possible features, many artists wind up using more than one of the tools.

For those of you who are uncertain about which tool to use, or what type of images you expect to create, then consider using some of the free tools on the market. They will be more limited in capabilities but will help you focus in on what you're looking for in tools and the type of image that you're interested in pursing.

There are also a number of tools available for less than $100 which can approach the capabilities of the professional tools.

Return to top of document


As a programmer, you're probably not that interested in actually creating masterpiece images, but rather you want to allow your users to create images. This means you have some decisions to make.

Language Selection
Selection of a language to use in writing an application is usually pretty easy - use the one that your know the best. A person skilled in one language can usually write better code (faster with better performance) in a language they know well than they can write on a language they are just learning. That's in part because just about all of today's languages are very capable and in part because most languages allow access to the operating system API for the time-performance crucial functions of the application.

There are, however, some cases where limits exist on which language may be used. In particular, the development and display of 3D animations on web sites must be accomplished with technologies which are supported by the available browsers. This means either plug-ins or Java applets. For example, you simply cannot write 3D applications embedded in web pages while using C++ or Visual Basic.

3D Engine
Unless it's just for the personal pleasure of undestanding the code, most programmers are better of using one of the established 3D engines - that are available for free or which may be purchased through third-party vendors.

As a paid programmer you'll have cost, schedule and performance criteria to meet. The use of existing code is the time-honored technique for meeting such constraints. It's far better to use code that has been debugged my someone else than it is to create code anew each time your need it.

It's always possible that existing third-part 3D engines don't meet your need and that it will be necessary to write custom 3D imaging code, but you should strongly resist that temptation. It's typical of programmers to rule out the use of existing tools in favor of writing their own code, whereas hindsight often shows that the third-part tools would have done just fine - at a lower cost and much more quickly that custom code would have provided.