Find JSRs
Submit this Search

Ad Banner

Summary  |  Proposal  |  Detail (Summary & Proposal)
JSRs: Java Specification Requests
JSR 297: Mobile 3D Graphics API 2.0

Stage Access Start Finish
Proposed Final Draft Download page 14 Apr, 2009  
Public Review Ballot View results 02 Sep, 2008 08 Sep, 2008
Public Review Download page 03 Jul, 2008 08 Sep, 2008
Early Draft Review Download page 13 Jul, 2007 25 Aug, 2007
Expert Group Formation   31 May, 2006  
JSR Review Ballot View results 16 May, 2006 30 May, 2006
Status: Dormant
JCP version in use: 2.6
Java Specification Participation Agreement version in use: 2.0

This new revision of M3G (JSR-184) will expose the latest graphics hardware features on high-end devices, while improving performance and memory usage on the low end.

Please direct comments on this JSR to the Spec Lead(s)

Specification Leads
  Tomi Aarnio Nokia Corporation
  Erkki Rysä North Sixty-One Ltd
Expert Group
  Aplix Corporation Arm Limited ATI Technologies Inc.
  Bry, Michael Digital Chocolate Ericsson AB
  Motorola Nokia Corporation North Sixty-One Ltd
  Samsung Electronics Corporation Sun Microsystems, Inc.

This JSR has been Dormant
Reason: The Specification Leads chose to list this JSR as dormant in June 2013.

Updates to the Original JSR

The following has been updated from the original request:

The Spec Leads have decided to list the JSR as Dormant until work resumes.

North Sixty-One has become the co-Specification Lead.

Specification Lead: Erkki Rysä

E-Mail Address:

Telephone Number: -

Fax Number: -

Original Java Specification Request (JSR)

Identification | Request | Contributions | Additional Information

Section 1. Identification

Submitting Member: Nokia Corporation

Name of Contact Person: Tomi Aarnio

E-Mail Address:

Telephone Number: +358 50 483 5332

Fax Number: +358 71 803 5264

Specification Lead: Tomi Aarnio

E-Mail Address:

Telephone Number: +358 50 483 5332

Fax Number: +358 71 803 5264

Initial Expert Group Membership:

Digital Chocolate
HI Corporation
Imagination Technologies
Mr. Goodliving
Samsung Electronics
Sun Microsystems

Supporting this JSR:

HI Corporation
Hybrid Graphics
Imagination Technologies
Sun Microsystems

Section 2: Request

2.1 Please describe the proposed Specification:

The proposed specification is a new revision of JSR-184, Mobile 3D Graphics API for J2ME, or "M3G" for short.

This new revision, M3G 2.0, will extend and enhance M3G to better leverage state-of-the-art hardware, particularly programmable 3D graphics accelerators, but also to extract better performance from more constrained devices.

Some of the requirements and goals for M3G 2.0 are as follows:

    * The new JSR must completely supercede or subsume JSR-184
    o Existing midlets and tool chains must continue to work;
    o Implementations without any graphics hardware must remain practical;
    o Implementations on OpenGL ES 1.1 graphics hardware must remain practical.

    * Fragmentation of the M3G platform must be minimized
    o Two or three profiles may be necessary to cover the full range of devices;
    o The more advanced profiles must be proper supersets of the less advanced;
    o All features within each profile should be mandatory.

    * Most OpenGL ES 2.0 and 1.1 features should be exposed
    o Shaders must be made available, but only in the most advanced profile(s);
    o Features that are poorly supported in hardware should be omitted;
    o Fixed functionality that is displaced by shaders may be omitted.

* The performance differential between Java and native applications must be minimized.

* Compression of 3D art assets must be improved, for both storage and run-time.

* The compactness and simplicity of M3G 1.1 must be preserved.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

Java Micro Edition.

2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.

The API must be usable on both CLDC and CDC based platforms, on MIDP 2 and 3, as well as on other Java Micro Edition Profiles. Implementations on Java Standard Edition should also remain feasible.

2.4 Should this JSR be voted on by both Executive Committees?


2.5 What need of the Java community will be addressed by the proposed specification?

Developers, device vendors, operators and consumers are demanding richer, smoother, more realistic graphics for games, user interfaces, and so on. At the same time, these ever more compelling applications are not expected to consume disproportionate amounts of memory, network bandwidth, or development resources.

There is a need for an evolution version of M3G, which would allow developers to access the latest hardware features and rendering techniques on high-end handsets, while improving performance and memory usage on the low end.

2.6 Why isn't this need met by existing specifications?

Please refer to section 2.5.

2.7 Please give a short description of the underlying technology or technologies:

Please refer to section 3.

2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

Yes, the same as in JSR 184: javax.microedition.m3g.

2.9 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?

The specification will be designed to allow efficient implementations on top of OpenGL ES 2.0 and 1.1 class graphics hardware, as well as on devices without any graphics hardware, just an OpenGL ES 1.1 software implementation. On the other hand, facilitating implementations on top of OpenGL ES 1.0 is not a priority, because such hardware is expected to be phased out before this JSR is finalized. Also, host devices are expected to have color displays; the API will not be designed with monochrome displays in mind.

2.10 Are there any security issues that cannot be addressed by the current security model?

Applications using the proposed specification may contain pieces of program code that are not written in the Java programming language, but instead in the OpenGL ES 2.0 Shading Language. These shader programs are executed by the Graphics Processing Unit (GPU), not the Java Virtual Machine, and hence are not subject to the same security model as Java classes. In practice, shader programs run in a very restricted and tightly controlled sandbox of their own, so this should not be a significant security issue. The Expert Group will nonetheless examine the security implications and potentially set tighter requirements for conforming shader programs, shader compilers, and GPUs than native OpenGL ES 2.0.

2.11 Are there any internationalization or localization issues?


2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

This specification is the successor to JSR 184. After a reasonable transition period, vendors are expected to implement M3G 2.0 in new products, therefore replacing M3G 1.1. As stated in section 2.1 of this form, the Expert Group will ensure that the evolution path from 1.1 to 2.0 remains feasible also for the very low-end handsets that have processing power equivalent to a 150 MHz ARM9 CPU, and no hardware support for 3D graphics or floating-point processing.

2.13 Please describe the anticipated schedule for the development of this specification.

* June 2006: Expert Group Formed
* February 2007: Early Draft Review
* May 2007: Public Review
* September 2007: Proposed Final Draft
* October 2007: Final Release

2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.

The primary communications channel will be email. A web site or a wiki will be used to store persistent material and to keep track of decisions. Phone conferences and face-to-face meetings will be arranged as needed. The intention is to limit the number of face-to-face meetings to a maximum of four per year.

2.15 It is important to the success of the community and each JSR that the work of the Expert Group be handled in a manner which provides the community and the public with insight into the work the Expert Group is doing, and the decisions that the Expert Group has made. The Executive Committees would like to ensure Spec Leads understand the value of this transparency and ask that each JSR have an operating plan in place for how their JSR will address the involvement of the community and the public. Please provide your plan here, and refer to the Spec Lead Guide for a more detailed description and a set of example questions you may wish to answer in your plan.

The JSR community page and the observer alias will be used to provide the community with regular progress reports and information about the current topics and issues in the Expert Group. Possibilities to set up a public blog will be examined.

2.16 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.

Both the RI and the TCK will be delivered as stand-alone packages.

2.17 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).


2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

These terms only represent the initial commercial terms planned to be used at this time and remain subject to the execution of final legal agreements covering the subject matter hereof to be determined by Nokia at its sole discretion. We will license to all interested parties. Independent implementations will be allowed - TCK and RI will be licensed separately.


* The Specification will be made publicly available under two separate, royalty-free and fully paid-up licenses:
o a) A license for the purposes of analyzing and using the specification for research, evaluation, and development will be available. No rights to (i) use an implementation of the Specification for internal deployment, (ii) the creation and/or distribution of implementations of the Specification for direct or indirect commercial (including strategic) gain or advantage, (iii) for modification of the Specification or (iv) for distribution of the Specification will be granted under that license.
o b) A license agreement granting rights for the creation and/or distribution of commercial implementations of the Specification in accordance with the JSPA will be available.


* Available free of charge to qualified not-for-profit organizations and individuals in accordance with the JSPA.
* The TCK will be licensed on a flat fee basis, having a cap of a maximum of 50,000 USD, including all updates and new releases if any. The license will be worldwide, non-exclusive and will be granted on an AS IS basis without any warranties or indemnities given and with the exclusion of all indirect and consequential damages. Major new releases, from new follower JSR, are subject to an additional single one-time fee.
* The license grant will be for a term of not less than three (3) years.
* A license allowing licensees to test implementations on behalf of third parties as a free or for-fee commercial service under certain conditions shall be available. This right may result in a higher license fee.


* The RI will be licensed without a charge in binary form.

Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.

* M3G 1.1 (JSR 184):
* OpenGL ES 1.x:
* OpenGL ES 2.x:
* EGL:
* MIDP 2 (JSR 118):
* MIDP 3 (JSR 271):
* JSR 239 (Java bindings for OpenGL ES):

3.2 Explanation of how these items might be used as a starting point for the work.

M3G 1.1 forms the basis for this work. The different versions of OpenGL ES provide the core rendering functionality that needs to be exposed by M3G 2.0. EGL defines how graphics hardware interfaces with other system components -- software and hardware -- that need to access the frame buffer. Aligning the specification with EGL is important to avoid stalling the 3D rendering pipeline and to minimize redundant copying of frame buffer data. Finally, flexible interoperation and resource sharing with MIDP2, MIDP3, and JSR 239 should be facilitated. In particular, if MIDP3 adopts a scalable vector graphics model that is compatible with OpenVG and EGL, applications should be able to mix and match 2D and 3D graphics without any performance penalty on most implementations.

Section 4: Additional Information (Optional)

4.1 This section contains any additional information that the submitting Member wishes to include in the JSR.