<commit_before>JMini3D
=======

Minimalistic OpenGL 2.0 3D library with support for Android and GWT (Google Web Toolkit, to create HTML5 apps developing in Java).

This library helps you to develop 3D apps compatible with Android and GWT projects. The CocoonJS linker allows to develop apps for CocoonJs's Canvas+ and use them in iOS.

Subprojects:
* *core:* includes the common classes between Android and GWT projects
* *android:* the Android OpenGL ES 2.0 Renderer
* *android_demo:* An Android demo application
* *gwt:* the GWT library project implementing a WebGL Renderer (based on OpenGL ES 2.0 like android2)
* *gwt_cocoonjs:* GWT Linker to make Jmini3D work with the CocoonJS framework (it can create apps for iOS)
* *gwt_demo:* The demo project in GWT
* *utils:* includes an utility to generate Geometry files from OBJ models
* *gwtgl:* a dependency for the gwt project

Also includes a touch abstraction library (JMini3D Input) for Android and GWT.

JMini3D is used in 3D Mobialia games (http://www.mobialia.com) with Android and HTML5 versions like:
* Mobialia Chess: http://chess.mobialia.com http://www.mobialia.com/apps/chess
* Slot Racing: http://slot.mobialia.com http://www.mobialia.com/apps/slot
* Mobialia Four in a Row: http://fourinarow.mobialia.com http://www.mobialia.com/apps/fourinarow

Axis
====

This library uses the same axis system than Blender, z is up, y is front.

 z   y
 |  /
 | /
 |------x

Generate Geometries from OBJ files
==================================

Objects must have UV mapping.

Export to OBJ from Blender with this options:

* Write Normals
* Include UVs
* Triangulate faces
* Y Forward
* Z up

An convert to a Java class with:

 cd utils
 gradle jar
 java -cp ./build/libs/jmini3d-utils-0.2.jar jmini3d.utils.Obj2Class teapot.obj TeapotGeometry.java jmini3d.android.demo

The generated TeapotGeometry.java is a Java class in the jmini3d.android.demo package extending Geometry.

Build
=====

This project is built with Gradle.

Buld Android demo and install it to the connected device or emulator:
 cd android_demo
 gradle installDebug

Build gwt demo in the gwt_demo/src/main/webapp/ directory, first you need to install the gwtgl artifact in your maven local repo:
 cd gwtgl
 gradle install
 cd ../gwt_demo
 gradle compileGwt

Install this library's JARs and AARs to the local Maven repo:
 gradle install

Licenses
========

It's released under the MIT License, so feel free to use it anywhere.

The cube texture in the demos is CC licensed from Humus http://www.humus.name<commit_msg>Code format<commit_after>JMini3D
=======

Minimalistic OpenGL 2.0 3D library with support for Android and GWT (Google Web Toolkit, to create HTML5 apps developing in Java).

This library helps you to develop 3D apps compatible with Android and GWT projects. The CocoonJS linker allows to develop apps for CocoonJs's Canvas+ and use them in iOS.

Subprojects:
* *core:* includes the common classes between Android and GWT projects
* *android:* the Android OpenGL ES 2.0 Renderer
* *android_demo:* An Android demo application
* *gwt:* the GWT library project implementing a WebGL Renderer (based on OpenGL ES 2.0 like android2)
* *gwt_cocoonjs:* GWT Linker to make Jmini3D work with the CocoonJS framework (it can create apps for iOS)
* *gwt_demo:* The demo project in GWT
* *utils:* includes an utility to generate Geometry files from OBJ models
* *gwtgl:* a dependency for the gwt project

Also includes a touch abstraction library (JMini3D Input) for Android and GWT.

JMini3D is used in 3D Mobialia games (http://www.mobialia.com) with Android and HTML5 versions like:
* Mobialia Chess: http://chess.mobialia.com http://www.mobialia.com/apps/chess
* Slot Racing: http://slot.mobialia.com http://www.mobialia.com/apps/slot
* Mobialia Four in a Row: http://fourinarow.mobialia.com http://www.mobialia.com/apps/fourinarow

Axis
====

This library uses the same axis system than Blender, z is up, y is front.

```
 z   y
 |  /
 | /
 |------x
```

Generate Geometries from OBJ files
==================================

Objects must have UV mapping.

Export to OBJ from Blender with this options:

* Write Normals
* Include UVs
* Triangulate faces
* Y Forward
* Z up

An convert to a Java class with:
```
cd utils
gradle jar
java -cp ./build/libs/jmini3d-utils-0.2.jar jmini3d.utils.Obj2Class teapot.obj TeapotGeometry.java jmini3d.android.demo
```

The generated TeapotGeometry.java is a Java class in the jmini3d.android.demo package extending Geometry.

Build
=====

This project is built with Gradle.

Buld Android demo and install it to the connected device or emulator:
```
cd android_demo
gradle installDebug
```

Build gwt demo in the gwt_demo/src/main/webapp/ directory, first you need to install the gwtgl artifact in your maven local repo:
```
cd gwtgl
gradle install
cd ../gwt_demo
gradle compileGwt
```

Install this library's JARs and AARs to the local Maven repo:
```
gradle install
```

Licenses
========

It's released under the MIT License, so feel free to use it anywhere.

The cube texture in the demos is CC licensed from Humus http://www.humus.name
{'fraction_non_alphanumeric': 0.09363369245837415, 'fraction_numerical': 0.009010773751224289, 'mean_word_length': 4.236923076923077, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 10, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '438808', 'n_tokens_mistral': 1647, 'n_tokens_neox': 1549, 'n_words': 680}