3DML

{{Short description|Markup language}}

3DML was a format for creating three-dimensional websites by combining similar-sized building blocks. It was invented in 1997 by Michael Powers, who co-developed it with Philip Stephens and developed it further over the next four years. 3DML files are written in XML and can be delivered from standard web servers and shown within a browser via a plugin, or in an independent 3DML browser called Flatland Rover. A new update was posted in 2017 with updated code and binaries for Windows 10. 3DML had no avatar or multi-user support, unlike other platforms of the time like Active Worlds, and thus never attracted a large following. There were plugins for Internet Explorer, Netscape Navigator and AOL, but not for Mozilla Firefox. The most recent version is a standalone Windows application.

A 3DML world was called a "spot". In the spot "blocks" can be inserted, laid out in a grid. The blocks can be ordered into "levels" - each has the same size. This approach was designed to simplify the building process and comprehension of 3D pages. The following is an example of a full spot description of a 3D room with walls.

</p> <p><blockset</p> <p>href="http://blocksets.flatland.com/flatsets/basic.bset"/></p> <p><map style="single" dimensions="(9,9,2)" /></p> <p><sky texture="images/clouds.gif" brightness="90%" /></p> <p><ground texture="images/dirt.gif" /></p> <p><ambient_light brightness="100%" /></p> <p><ambient_sound file="sounds/waves.wav" volume="65%"</p> <p>playback="looped"/></p> <p></head></p> <p><body></p> <p><level number="1"></p> <p>###...###</p> <p>#.......#</p> <p>#.......#</p> <p>#.......#</p> <p>#.......#</p> <p>#.......#</p> <p>#.......#</p> <p>#.......#</p> <p>#########</p> <p></level></p> <p><level number="2"></p> <p>###---###</p> <p>#-------#</p> <p>#-------#</p> <p>#-------#</p> <p>#-------#</p> <p>#-------#</p> <p>#-------#</p> <p>#-------#</p> <p>#########</p> <p></level></p> <p><entrance location="(5,8,1)" name="default" angle="0,0" /></p> <p></body></p> <p></spot></p> <p></syntaxhighlight></p> <p>You can navigate the spots by using either mouse or arrow keys.</p></div></section><section class='wiki-section collapsible' id='section--ee-also'><h2 class='section-toggle'>See also</h2><div class='wiki-body'><ul> <li><a href='?title=Three.js'>Three.js</a></li> <li><a href='?title=VRML'>VRML</a></li> <li><a href='?title=X3D'>X3D</a></li> <li><a href='?title=3DMLW'>3DMLW</a></li> <li><a href='?title=3DXML'>3DXML</a></li> <li><a href='?title=GlTF'>glTF File Format</a></li> </ul></div></section><section class='wiki-section collapsible' id='section--xternal-links'><h2 class='section-toggle'>External links</h2><div class='wiki-body'><ul> <li>[http://www.flatland.com/ Homepage of the developers]</li> <li>[https://github.com/powerspowers/flatland] Version 4.0 sourcecode and binary for Windows 10]</li> <li>[http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=1&f=G&l=50&co1=AND&d=PTXT&s1=IN3D.ASNM.&OS=AN/IN3D&RS=AN/IN3D Patent granted to original developers]</li> <li>[http://original.flatland.com/guides/tutorial/index.html Original tutorial]</li> <li>[http://www.xml.com/pub/a/1999/01/3dml/3dml-plain.html An introduction to 3DML]</li> </ul> <p><a href='?title=Category%3AMarkup_languages'>Category:Markup languages</a></p> <p><a href='?title=Category%3AObsolete_technologies'>Category:Obsolete technologies</a></p> <p><a href='?title=Category%3A3D_graphics_file_formats'>Category:3D graphics file formats</a></p> <p><a href='?title=Category%3A3D_graphics_software'>Category:3D graphics software</a></p></div></section></div></main> <footer class="site-footer"> <div class="footer-container"> <div class="footer-links"> <a href="/about.php">About</a> <a href="/help.php">Help</a> <a href="/updates.php">Updates</a> <a href="/contact.php">Contact</a> <a href="/privacy.php">Privacy</a> <a href="/terms.php">Terms</a> <a href="https://github.com/yourusername/friendly-wiki" target="_blank" rel="noopener">GitHub</a> </div> <div class="footer-copy"> © 2025 Friendly Wiki. All rights reserved. </div> </div> </footer> <script> const toggle = document.getElementById('mobileMenuToggle'); const menu = document.getElementById('mobileMenu'); toggle.addEventListener('click', () => { menu.classList.toggle('active'); }); </script> <!-- Collapsible toggle --> <script> document.addEventListener("DOMContentLoaded", function () { const toggles = document.querySelectorAll('.section-toggle'); toggles.forEach(toggle => { toggle.addEventListener('click', function () { const section = toggle.closest('.collapsible'); const body = section.querySelector('.wiki-body'); body.classList.toggle('collapsed'); }); }); }); </script>