← Kiscvik.comA laboratory in the Kiscvik ecosystemKiscvikRetro ↗

G.01 / Graphics engine / Java ME

Laboratory beta · 0.7.35

From the first cube to a complete level.

From the first M3G cube to a complete level. PC conversion, streaming and native 3D graphics on Java ME phones.

Editorial reference: beta 0.7.35, closed on November 12, 2026. Results describe that artifact; they do not certify physical hardware or announce a public download.

01 / History

A simple idea.
Many versions of learning.

Kisport started with a colored cube to check depth, controls and pause in M3G. The synthetic runner added jumping, sliding and collisions; early W900i reports revealed slow input and flickering when requesting the backlight.

The next stage moved conversion to the PC: interpret geometry, textures and animation, compact the data and rebuild a 3D experience as a native Java ME application. The phone renders and simulates using its own APIs.

Streaming, shared textures, QUAD, preloading and M3G profiles arrived between 0.5 and 0.7.20. Versions 0.7.21–0.7.35 turned the technical route into Stage 1: traffic, courtyards, interiors, pedestrians, trucks, checkpoints, audio and a final screen at 240 × 320.

Separating the engine from implementation-specific code remains an architectural task. Kisport is not presented as a finished general-purpose SDK.

02 / Architecture and conversion

The heavy work starts on the PC.

  1. Interpret local source files

    PC converters read geometry, textures, animations and positions. Original-format readers and Java SE libraries stay off the phone.

  2. Compact and audit

    Custom binary formats, reports and hashes record what is converted and what may be packaged.

  3. Prepare incrementally

    The next chunk is preloaded during traversal. At most two chunks remain resident; texture pages are shared.

  4. Simulate and render

    Input → fixed-step 20 ms simulation → M3G rendering and HUD → flushGraphics → wait. Input edges accumulate between frames.

  5. Check the artifact

    The audit loads the actual preverified JAR in FreeJ2ME-Plus. The subsequent physical test must identify the same artifact by SHA.

KPS3
Chunk geometry
KPV
Visibility
KPW2
World and collisions
KPO
Objects
KPC
Characters
KPM
Lit models
KPU
2D interface
KTT
Text tables

CLDC 1.1, MIDP 2.0 and JSR-184 define the phone environment. The historical build uses Java 1.3 language features, bytecode 45.3 and CLDC preverification StackMap data. The modern JDK is a PC tool.

Read the technical handbook →

03 / Rendering systems

M3G, with its constraints in view.

M3G renders geometry in layers, using QUAD strips that group pairs of triangles without changing the surface. OVERWRITE is requested only when the implementation supports the hint, with a fallback if rejected. Compatibility distinguishes M3G 1.0 from 1.1.

The character uses rigid 16-bone skinning calculated on the CPU. The converted catalog contains 26 clips and 703 frames, but each context loads only its own clips. Character lighting remains provisional.

KPV visibility precalculates candidate triangles on the PC. Its laboratory geometry reduction does not imply a universal improvement: an early W900i test omitted a chunk, invalidating its FPS. QUAD remains the reference.

A measured decision

M3G vs Mascot Capsule

In Probe's synthetic scenes, Mascot was faster on W995 and slower on W900i. M3G is retained for vertex color, partial alpha and per-pixel depth.

See figures, methodology and limitations ↗

04 / Performance in context

Every figure needs its scene.

Historical data; not physical benchmarks of 0.7.35
ResultEnvironment and versionWhat it establishes
~83 ms transitionHistorical W900i report · 0.5.1Shared textures reduced the reported transition from 1–1.7 s. This is not a measurement of the final beta.
−18% trianglesDesktop · KPV visibilityLess geometry submitted in the reference test; performance depends on the driver and visual integrity.
~40 KB less clip dataConverted resources · 0.7.23 versus 0.7.22Loading clips by context reduces the level's catalog. It does not measure all physical phone memory.
W900i: 14.4 → 15.5 FPSReported hardware · 0.7.19 · QUAD vs VISIBLES · audio OFFOne run per configuration, with 10 s warm-up and 60 s measurement. VISIBLES also increased loading work and reduced the minimum free heap.
There are no FPS, percentiles, loading times or memory measurements for the final 0.7.35 SHA on W995/W900i. Scenes changed between versions; these figures do not certify the current beta.
Explore memory and streaming →

05 / Beta evidence

The same JAR.
A stated scope.

The editorial record documents two identical artifact rebuilds and audits of the preverified JAR. These tests ran in the engine project; they were not performed by this website.

Laboratory / emulator180

General tests: compilation, formats, CLDC rules and absence of Java SE dependencies.

Laboratory / emulator316

Private smoke checks of traversal, interactions, audio and the ending in an emulator.

Laboratory / emulator21 + 22

Visual checks in normal and M3G 1.0 profiles. These are not tests on phones.

Laboratory / emulator1,774,175 B

Size of the audited private JAR. The artifact and its commercial resources are not distributed here.

83 resources were compared with 0.7.34: 79 remain identical. The artifact contains 25 preverified classes and 230 methods with CLDC StackMap data.

Private reference artifact · 0.7.35Commit: f04e0b9
SHA-256: 7597a3c52614515da59de1be48bf85b73f2f202257f77a358ce44a1e5146c772
Pending: a full playthrough of the main version on W995 and the P1 variant on W900i, plus audio, pause, resume and extended sessions.

06 / Devices

Compatibility, backed by evidence.

Main platform

Sony Ericsson W995

Main target since 0.7.18. Historical measurements exist; a full physical playthrough of the 0.7.35 artifact is still pending.

Final physical validation pending

Legacy profile · M3G 1.0

Sony Ericsson W900i

The owner reported that the W900i-P1 variant passed the previously failing section. This is a partial test, without certification of the full level or extended sessions.

Partial physical report

FreeJ2ME-Plus checks behavior in an emulator. It does not reproduce every driver cost, native memory, audio or the phone's CLDC verifier.

Compatibility protocol →

07 / Approved visual archive

How it started.

Two original screenshots of the synthetic 0.2.x prototype in FreeJ2ME-Plus. They document the engine's origins; they do not show Stage 1 or validate hardware.

Screenshots and videos of the Pepsiman port require an explicit publication review. This edition retains the technical documentation without distributing those materials.

08 / Versions and changelog

The path to the beta.

  1. 0.7.35 ·

    First Stage 1 beta closed in the lab. The final facade was restored and mirrored pedestrian crops were fixed.

    Desktop and FreeJ2ME-Plus · final hardware testing pending
  2. 0.7.31–0.7.34 ·

    Trash can, construction site, window, two jumps, respawns, audio and animated results.

    Private JAR audits in an emulator
  3. 0.7.26–0.7.30 ·

    21 chunks and 100 cans; courtyards, manholes, trucks and the ending sequence.

    Implementation and emulator
  4. 0.7.21–0.7.25

    Traffic, HUD, delivery scene and animation clips by context.

    November 11–12, 2026 · laboratory
  5. 0.7.18–0.7.20

    Precalculated visibility, layer tests and different scales for M3G 1.0/1.1.

    Historical physical measurements; 0.7.20 validated on desktop
  6. 0.5–0.7.17

    Streaming, shared texture pages, QUAD, preloading and audio diagnostics.

    November 6–10, 2026 · code and physical reports
  7. 0.3–0.4

    Geometry, texture and animation conversion. First scene and rigged character.

    November 5–6, 2026 · code and emulator
  8. 0.2.x

    Cube, depth, synthetic runner, pause and controls. First physical reports of input and backlight behavior.

    Up to November 5, 2026; exact screenshot dates not established

09 / Keep exploring

The engineering behind the journey.

Technical handbook ↗

Architecture, formats, streaming, audio and validation method.

Pepsiman Java ME ↗

The project demonstrating the engine, with its own status and scope.

Check the provenance of figures and content →