3DMLW (3D Markup Language for Web) is a discontinued open-source project, and a XML-based Markup Language for representing interactive 3D and 2D content on the World Wide Web.

The project has been inactive since 2009; as of 2016, the website, including the documentation, is no longer available.

3DMLW platform
The 3DMLW platform is an open-source software suite aimed at showing dynamic 3D content. It included its own scripting language for software design, and a format support for 3D models.

3DMLW language
3DMLW is an XML standard 1.0 based markup language that allows for data exchange between applications linked with 3DMLW plug-in interface. A schema definition is provided for verifying the notation with 3rd party software such as jEdit or other XML editors capable of checking XSD constraints.

3DMLW renderer
The rendering engine uses industry standard OpenGL. It can be plugged into 3DMLW Plug-in Interface and consists of a scene library and a graphics library, which provides an optimized rendering pipeline for the scene library structures. The scene library can be utilized independently for the manipulation or conversion of meshes without rendering them.

3DMLW plug-in interface
The plug-in interface mediates input events and output from host windows (e.g. web browsers) or an independent output window. It is extendible to allow integration into 3rd party software. Native support has been implemented for common web browsers.

3DMLW server toolset
The toolset provides batch conversion for several filetypes (.obj, .3ds, .xyz, .pts) and texture atlas generation capable of processing multiple models concurrently. It can be employed server-side to provide automatic conversion of 3D models and textures.

3DMLW file format
A 3DMLW file is a simple text file containing instructions confined to 3DMLW language syntax:

<?xml version='1.0' standalone='no'?>
<document>
	<content2d>
		<area width='200' height='100' color='#C0C0C0FF' texture='flower.png' />
	</content2d>
	<content3d id='content' camera='{#cam}'>
		<camera id='cam' class='cam_rotation' y='10' z='40' viewy='10'/>
		<box name='ground' width='100' height='2' depth='100' color='green' class='ground' />
		<box name='dynamic' y='20' width='10' height='10' depth='10' color='blue' />
	</content3d>
</document>

In 3DMLW 2D and 3D content are handled independently from each other, but they are free to overlap. For animating 3D scenes and handling different events a Lua scripting facility is provided. The following script snippet demonstrates colour fading:

<script type='text/x-lua'><![CDATA[
receiver = Reference.get("@receiver");
c = receiver:attributeColor("color");
c:setAlpha(c:getAlpha() + 1);
if c:getAlpha() > 255 then
  c:setAlpha(0);
end
receiver:putAttribute("color", tostring(c));
]]>
</script>

The use of 3D models in .3ds, .obj, .an8, and .blend file formats is supported, but 3DMLW Plug-in interface allows for easy extension to include other formats.

3DMLW files use .3dmlw (e.g. filename.3dmlw) as extension and can be linked together similar to HTML.

Displaying 3DMLW
3DMLW content could be viewed using applications provided by 3D Technologies R&D, including plug-ins for Internet Explorer and NPAPI compatible browsers (Mozilla Firefox, Opera etc.). However, these applications are not available anymore.

Usage of 3DMLW
3DMLW was used for Tallinn's old town 3D application. 3D Technologies R&D also is using some parts of 3DMLW engine in their 3D Wayfinder application.

See also

web3D
COLLADA
U3D
X3D
VRML
3DML
3DXML

References

External links
 (unmaintained) 
3D Technologies R&D

3D graphics software
Animation software
Lua (programming language)-scriptable software
Vector graphics markup languages