What is IMML¶
What is IMML?¶
Immersive Media Markup Language (IMML) is a specification that
(1) Defines the positions of objects in 3-D space, describing a 3-D scene
(2) Is capable of capturing the changes in the 3-D scene in the mark-up language
(3) Defines the interaction and use of different forms of media (video, music, 2-D images)
(4) Defines how objects interact in a multi-user (networked) situation
(5) Includes interactivity between elements and their re-use
(6) Includes the real world conventions means of interacting in a 3-D environment (e.g Physics)
Need for IMML?¶
HTML for the 3-D Web:
One of the take-off factors for the internet was HTML (hypertext markup language) which defined where elements lay on the page. A similarly light and easy to use specification for 3-D space on the internet does not exist. HTML was flexible and easy to use and manipulate. IMML aims to replicate these characteristics
Need to describe interaction and position:
Other specifications deal with display of a digital 3-D object (mesh), but not how these objects work together and interact.
Need to accommodate multiple forms of media
Other specifications also focus solely on 3-D objects and do not include other forms of media like sound and video.
Real Time
Lack of real-time format for 3-D space.
Treat 3-D space as a document
Traditional virtual worlds are experienced there and then, users are unable to capture or share that experience of what happened in that virtual space and the time it happened. The virtual world experience should be able to be shared and repurposed.
How is it used?¶
IMML is designed to be manipulated by- Humans
- Other programs
- By itself: Parts of IMML are re-used to create little environments within worlds which are called up on a need-to basis. We call these widgets, and our favourite example is: "Pulling a Pool Table widget complete with balls, cues and physics within a Virtual World"
Design considerations of IMML?¶
Abstract, lightweight, flexible
IMML aims to be a lightweight, "lean and mean" specification that developers will be equally happy to dive in and code with as they are HTML. IMML aims to be abstract enough that it can be used in conjunction with multiple devices and clients that use proprietary and/or open formats to describe media files. IMML is designed to be able to encapsulate real time updates to the current scene. Finally, IMML is easily generated or controlled by other scripting languages and external services and data feeds, making it highly suitable for use in a fast changing Immersive Web of the future.
Sharable rather than shared
IMML follows a philosophy of virtual environments being nothing more than collaborative documents. They can feel as immersive and offer all the affordances of any game, serious game, real time GIS service, virtual world, 3D chat environment, etc, BUT they can be easily secured and shared as documents where the content can be external to the document, enabling the publisher of each piece of content to retain control of the asset and reuse it across many worlds very easily.
The guiding principle
The guiding principle behind IMML was that a blind person should be able to meet and interact with a deaf person in a virtual environment and both should feel they are meeting each other in a common environment and experience. The blind and deaf person should be allowed to communicate in whatever way feels natural to them. The concept is that all virtual world information and user input can be carried in an abstract metadata format that can then be rendered on a device that is natural for the user to utilize, enabling users of diverse needs to participate in a sharable environment.