Making of X3Diamond

This page of notes outlines some of the more technical aspects of project development, such as:

 

[x3diamond home]


 

 

Technologies used

[top of page]


 

Custom nodes written

The following nodes were written specifically for this project:

C3D_DiamondRoundBrilliant

This PROTO does all the hard work. It accepts input in the form of GIA standard diamond characteristics (such as girdleDiameter, crownHeightPercent etc) and generates wireframe previews (top, bottom and side) plus a complete and mathematically accurate 3D diamond model. It also calculates statistics and outputs strings for the various characteristics that are formatted to conform with GIA classifications, which are then fed back into the user interface and used within the XHTML report.

C3D_Sparkler and C3D_Sparkle

These PROTOs together, dynamically create and control the diamond sparkle effect. C3D_Sparkler takes the diamond facet center points and normal vectors (from the C3D_DiamondRoundBrilliant PROTO above) and outputs position, scale, rotation, transparency and (optionally) color to the individual C3D_Sparkle flares in screen coordinate space, based on the angle of incidence between viewer and each diamond facet. The sparkles scale uniformly with view distance and diamond size, and are correctly occluded by foreground geometry. Both sparkler nodes are general purpose and can be used on any arbitrary geometry (given the aforementioned input requirements).

LogoAnimAD

Simple PROTO to animate the American Diamond logo in the same way as the Macromedia Flash logo animations contained in the premium jewelry galleries on the American Diamond website.

[top of page]


 

Custom nodes reused

The following nodes were reused from Construct 3D's library framework. These nodes and more will be released as open-source, free software as soon as they are adequately documented.

[top of page]


 

Proprietary nodes used

The following Bitmanagement Software proprietary nodes were used:

[top of page]


 

Extensions used

The following Bitmanagement Software node and scripting extensions were used:

Standard node field extensions

Scripting extensions

[top of page]


 

Licensed commercial software used

Note: It is my opinion that this project could just as easily have been developed with all free and open-source software alternatives such as Xj3D, X3D-Edit, Blender, The Gimp, CinePaint, Crimson Editor, PSPad and the like. I only used the above commercial software because I own it and know it better than the free alternatives at the present time.

[top of page]


 

Free software used

[top of page]


 

3rd-party digital assets used

The following textures, 3D models, shaders and PROTOs were used to enhance the project (and save me development time):

[top of page]


 

3D models created

[top of page]


 

User interface created

A custom GUI was created to match the 'look and feel' of the AmericanDiamond.com website. The colors and style of the X3D should embed seamlessly into the existing HTML. Click the image to the right to see how HTML style and color elements were accurately matched to their X3D/VRML counterparts.

The functionality of the various user interface elements is achieved by using the Construct 3D library framework. PROTOs such as C3D_GuiScrollbar, C3D_GuiRadioButton and many more work together to provide an attractive and intuitive user experience.

[top of page]


 

Primary online references

The following resources were the primary references used throughout the research and development of the X3Diamond simulation:

[top of page]


 

Development time

Approximately 150 hours

[top of page]