Mobile 3D Graphics API

Last updated
Mobile 3D Graphics API
Developer(s) Java Community Process
Stable release
1.1 / August 24, 2005;19 years ago (2005-08-24)
Preview release
2.0 / April 14, 2009;15 years ago (2009-04-14) [1]
Operating system Cross-platform
Type 3D computer graphics software (library/API)
Website JSR 184: Mobile 3D Graphics API for J2ME
M3G file format
Filename extension
.m3g
Internet media type
application/m3g
Developed by Nokia
Latest release
1.1
August 24, 2005;19 years ago (2005-08-24)
Type of format 3D computer graphics
Standard JSR 184
Website JSR 184: Mobile 3D Graphics API for J2ME

The Mobile 3D Graphics API, commonly referred to as M3G, is an open source graphics API and file format specification for developing Java ME applications that produce 3D computer graphics on embedded devices such as mobile phones and PDAs.

Contents

History

Originally developed at Nokia Research Center Tampere in 2003-2005, M3G was standarized under the Java Community Process as JSR 184 in 22 Dec, 2003. As of 2007, the latest version of M3G was 1.1, but version 2.0 was drafted as JSR 297 in April 2009. In 2010, M3G 1.1 JNI source code and related Symbian OS Java Runtime Environment were subsequently released into open source through the Symbian Foundation.

Rendering

Screenshot of the Mobile game Asphalt 3: Street Rules, showing the capabilities of the Mobile 3D Graphics API. Asphalt 3 gameplay.png
Screenshot of the Mobile game Asphalt 3: Street Rules , showing the capabilities of the Mobile 3D Graphics API.

M3G is an object-oriented interface consists of 30 classes that can be used to draw complex animated three-dimensional scenes, it provides two ways for developers to draw 3D graphics: immediate mode and retained mode.

In immediate mode, graphics commands are issued directly into the graphics pipeline and the rendering engine executes them immediately. When using this method, the developer must write code that specifically tells the rendering engine what to draw for each animation frame. A camera, and set of lights are also associated with the scene, but is not necessarily part of it. In immediate mode it is possible to display single objects, as well as entire scenes (or worlds, with a camera, lights, and background as parts of the scene).

Retained mode always uses a scene graph that links all geometric objects in the 3D world in a tree structure, and also specifies the camera, lights, and background. Higher-level information about each object—such as its geometric structure, position, and appearance—is retained from frame to frame. In retained mode, data are not serialized by Java's own serialization mechanism. They are optimized by the M3G serialization mechanism, which produces and loads data streams conforming to the .m3g file format specification for 3D model data, including animation data format. This allows developers to create content on desktop computers that can be loaded by M3G on mobile devices. [2]

Emulation

After the discontinued development of M3G, the emulation has been achieved by an open source Android application called "JL-Mod" in 2020. [3] [4]

Further reading

Related Research Articles

<span class="mw-page-title-main">OpenGL</span> Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME.

Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition framework and sits on top of Connected Limited Device Configuration (CLDC), a set of lower level programming interfaces. MIDP was developed under the Java Community Process. The first MIDP devices were launched in April 2001.

The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one or more profiles to give developers a platform for building applications on embedded devices with very limited resources such as pagers and mobile phones. The CLDC was developed under the Java Community Process as JSR 30 and JSR 139.

<span class="mw-page-title-main">Binary Runtime Environment for Wireless</span> Application development platform

Binary Runtime Environment for Wireless is an obsolete application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It was offered in some feature phones as well as smartphones.

OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfaces by offloading computationally intensive graphics processing from the CPU onto a GPU to save energy. The OpenGL ES library provides similar functionality for 3D graphics. OpenVG is managed by the non-profit technology consortium Khronos Group.

The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation, vision acceleration and machine learning. The open standards and associated conformance tests enable software applications and middleware to effectively harness authoring and accelerated playback of dynamic media across a wide variety of platforms and devices. The group is based in Beaverton, Oregon.

<span class="mw-page-title-main">Java 3D</span> Java 3D graphics API

Java 3D is a scene graph-based 3D application programming interface (API) for the Java platform. It runs on top of either OpenGL or Direct3D until version 1.6.0, which runs on top of Java OpenGL (JOGL). Since version 1.2, Java 3D has been developed under the Java Community Process. A Java 3D scene graph is a directed acyclic graph (DAG).

Hybrid Graphics Ltd., commonly referred to as Hybrid Graphics, was a graphics software technology company active from 1994 to 2007 in Helsinki, Finland. Acquired by Nvidia in 2006, Hybrid Graphics is now Nvidia Corporation's Helsinki office.

<span class="mw-page-title-main">OpenGL ES</span> Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

<span class="mw-page-title-main">Java OpenGL</span>

Java OpenGL (JOGL) is a wrapper library that allows OpenGL to be used in the Java programming language. It was originally developed by Kenneth Bradley Russell and Christopher John Kline, and was further developed by the Game Technology Group at Sun Microsystems. Since 2010, it has been an independent open-source project under a BSD license. It is the reference implementation for Java Bindings for OpenGL (JSR-231).

Java APIs for Bluetooth Wireless Technology (JABWT) is a J2ME specification for APIs that allows Java MIDlets running on embedded devices such as mobile phones to use Bluetooth for short-range wireless communication. JABWT was developed as JSR-82 under the Java Community Process.

The phoneME project is Sun Microsystems reference implementation of Java virtual machine and associated libraries of Java ME with source, licensed under the GNU General Public License.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">Nokia 2730 classic</span> 2009 cell phone model

The Nokia 2730 classic is a Nokia Quad-band GSM/UMTS 3G cell phone that includes a camera, FM radio, Bluetooth, music and video player, as well as several internet-based applications.

ULTRAY2000 is a concept chip for 3D graphics processing designed by Digital Media Professionals Inc. (DMP), a Japanese GPU design company. It was used for real-time 3D graphics. It was produced in 0.13 μm TSMC manufacturing process and contained more than 100 million CMOS transistors, with GPU core clock running at 200MHz and its integrated memory controller having support for DDR-400 memory. DMP announced ULTRAY2000 concept chip on July 21, 2005, and its first exhibition was at SIGGRAPH 2005. The first sample shipments were scheduled for the fall of 2005. ULTRAY2000 adopted a design where a fixed graphics pipeline architecture coexists with an advanced instruction programmable core.

Ville Ilmari Miettinen is a Finnish serial entrepreneur and computer programmer. Miettinen was the co-founder and CTO of Hybrid Graphics, a graphics technology company acquired by NVIDIA in 2006. Miettinen is a founding partner at Lots, one of the accelerators in the Finnish governmental Vigo Programme. Miettinen is also the CEO and co-founder of the crowdsourcing technology company Microtask.

<span class="mw-page-title-main">Nokia Asha platform</span> Mobile operating system

The Nokia Asha platform is a discontinued mobile operating system (OS) and computing platform designed for low-end borderline smartphones, based on software from Smarterphone which was acquired by Nokia. The platform inherits UI similarities mostly from MeeGo "Harmattan", and replaced Series 40 on Nokia's low-end devices. The user interface design team was headed by Peter Skillman, who had worked previously on webOS and the design of MeeGo for the Nokia N9.

<span class="mw-page-title-main">MicroEmulator</span> Emulation software

MicroEmulator — is a free and open-source platform independent J2ME emulator allowing to run MIDlets on any device with compatible JVM. It is written in pure Java as an implementation of J2ME in J2SE.

References

Java Community Process
Specifications
list of compatible devices
Source code released by Symbian Foundation on GitHub