3D lighting docs: Light3d is now a world Renderable (like Light2d) — drop LightingEnvironment; add in-game day/night manipulation example
obiot
committed
Jun 19, 2026
5512506
3D docs: glTF node animation (GLTFModel) + external textures/buffers + texture wrap; Sprite-aligned play/pause/stop
obiot
committed
Jun 19, 2026
1dbc5b4
Document glTF material colors + correct lighting status
- 3D-Loading-glTF-and-GLB-Scenes: add Materials & colors (baseColorFactor +
vertex colors COLOR_0); getGLTF descriptor now lists lights/normals/colors;
correct the limitations note (directional lighting supported; no transparency/
animation yet).
- 3D-Loading-and-Supported-Assets: lighting section now reflects directional
Light3d/LightingEnvironment support.
obiot
committed
Jun 19, 2026
8895b0b
Document glTF mesh lighting (Light3d / LightingEnvironment) + drop engine name-drops
- 3D-Loading-glTF-and-GLB-Scenes: add a Lighting section — auto-loaded
directional lights from KHR_lights_punctual, Light3d/LightingEnvironment
scripting, mesh.lit / lit batcher, support matrix, lux/ambient notes.
- Working-in-3D: reword the mesh-pivot note to drop external-engine names.
obiot
committed
Jun 18, 2026
97fce33
Document glTF level-director API + mesh pivot/anchor (19.8)
- 3D-Loading-glTF-and-GLB-Scenes: lead with me.level.load(scene, {scale,
rightHanded, onLoaded}); options table; per-node center-split notes;
getGLTF demoted to inspection path; note glTF requires melonJS 19.8+.
- Working-in-3D: add 'Pivot — a mesh transforms about its local origin
(0,0,0)' under Meshes, with applyAnchorTransform + glTF/Three.js/pixi3d
framing.
obiot
committed
Jun 18, 2026
62b1c53
Split "Working in 3D" into a hub + focused subpages
Working in 3D had grown into one long page. Split it into a landing hub
(general concepts: opt-in, conventions, camera, meshes, follow) plus
dedicated pages, and link them from Home:
- 3D Loading and Supported Assets (OBJ/MTL + support/limitations matrices)
- 3D Loading glTF and GLB Scenes (Blender-authored scene import)
- 3D Spatial Queries (sphere / ray / frustum)
- 2.5D Games (Paper Mario-style recipe)
obiot
committed
Jun 17, 2026
d6a7531
Working in 3D: add "Loading & preloading 3D assets" section
Document the asset pipeline for 3D geometry — OBJ/MTL and the new glTF/GLB
(Tier 1) loader — with quick-start examples and a full support/limitations
breakdown across geometry, materials/textures, animation, lighting, cameras,
the right-handed coordinate conversion, and file packaging.
obiot
committed
Jun 17, 2026
9f9e002
docs(3D): fix Paper Mario example — Stage.onResetEvent receives the Application instance
The 2.5D Paper Mario mini-example used `const app = me.game.app` inside
`onResetEvent` — referencing the legacy global, and inconsistent with the
outer-scope `const app = new Application(...)` it would have shadowed at
runtime. Stage.onResetEvent(app, ...) actually receives the Application
instance as its first parameter, which is the modern path.
obiot
committed
Jun 9, 2026
e03c2f3
docs: 19.7 3D query surface — raycast3d/querySphere capabilities + AABB3d/Frustum
Switching-Physics-Adapters:
- Add `raycasts3d` capability row (builtin ✓, matter ✗, planck ✗) to
the capability flags table.
- Add `querySphere(...)` and `raycast3d(from, to)` rows to the
optional/capability-gated methods table — both builtin-only since
19.7, with the call-as `world.adapter.X?.(...) ?? fallback` shape.
Working-in-3D:
- Add a "Supporting primitives" subsection documenting `AABB3d`
(Octree's bounding primitive) and `Frustum` (Camera3d's view
volume, exposed as `camera.frustum`) — the two 3D types that
back the queries but weren't previously listed.
obiot
committed
Jun 5, 2026
3777883
Working in 3D: 2.5D section — correct overpromised parallax-isolation claim
obiot
committed
May 31, 2026
a0ad380
Working in 3D: add 2.5D / Paper Mario pattern (Camera3d + Octree + SAT)
obiot
committed
May 31, 2026
524b2a9
docs: add Working in 3D page for the 19.7 Camera3d surface
Covers the dev-facing 3D feature set: Camera3d opt-in (cameraClass +
Stage cameras: …), Y-down + +Z forward conventions, perspective
camera fields (fov / aspect / pitch / yaw / setClipPlanes), Mesh +
multi-material OBJ rendering, the depth-sort scene graph, the 3D
spatial-query surface on the physics adapter (Sphere primitive,
adapter.querySphere with both call shapes, adapter.raycast3d,
Camera3d.queryVisible bulk frustum cull), the math.damp /
Vector*.damp frame-rate-independent smoothing helpers, plus a
pointer to the AfterBurner showcase as the worked reference.
Stays user-facing — opt-in code, API shapes, common gotchas
(Sprite.isKinematic default skipping the broadphase). Implementation
details (broadphase swap mechanics, Octree internals) are left to
the API docs / source.
Lead on Home.md updated from "2D games" → "2D and 3D games" and a
"Working in 3D" link section added between Rendering and Physics.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
obiot
committed
May 31, 2026
990413a
docs: 19.6 → 19.7 — video.createCanvas deprecated in favor of Renderer.createCanvas
obiot
committed
May 26, 2026
d463fca
fix(wiki): renumber duplicate Quirks ## 10. → 11/12/13, fix isGrounded cross-link
obiot
committed
May 21, 2026
97fc36c
19.5 sweep: planck-adapter coverage, portable raycast/queryAABB, new BuiltinAdapter divergence quirks
Bring all three physics-adapter wiki pages in line with what actually
shipped in 19.5.
Migrating-to-the-Physics-Adapter-API.md
- Mention `@melonjs/planck-adapter` alongside matter (it's shipping in
19.5, not "future Box2D")
Switching-Physics-Adapters.md
- "Picking an adapter" example imports PlanckAdapter too; mention the
`physic: "planck"` shortcut.
- Rewrite the "Optional / capability-gated APIs" section: `raycast` and
`queryAABB` are portable across every adapter (previously described
as matter-only — wrong). `queryAABB` is mandatory on the interface;
`raycast` is capability-gated via `capabilities.raycasts` (all three
official adapters return `true`).
- Add an explicit capability matrix (builtin / matter / planck columns)
for `constraints`, `continuousCollisionDetection`, `sleepingBodies`,
`raycasts`, `velocityLimit`, `isGrounded`.
- Behavioural-differences table grows a planck column.
- Joints/Constraints recipe gets a planck sibling (DistanceJoint as
spring, RevoluteJoint as hinge — reached via `adapter.world.createJoint`).
- Sleeping-bodies recipe gets a planck sibling (planck sleeps per-body
by default; toggle via `world.setAllowSleeping` / `body.setAwake`).
- New porting-pitfall: `setVelocity` units are px/step on builtin+matter
but px/s on planck — surfaced when writing the parity tests, real
porting trap.
BuiltinAdapter-Quirks.md
- Add planck-adapter to the "won't carry across" list.
- §6 (inline vs deferred dispatch): planck behaves like matter — events
fire post-step via begin-contact / end-contact listeners.
- Three new quirks (#10, #11, #12) surfaced when writing the parity tests:
- #10 `isGrounded` is flag-based (`!falling && !jumping`), not
contact-based — diverges from matter / planck for resting bodies
under gravity. Already documented in the bug-hunt spec but not on
the wiki.
- #11 `BuiltinAdapter.raycast` / `queryAABB` require a prior
`world.update` to populate the broadphase; matter / planck index
on `addBody` and work immediately. Planned for 19.6 lazy-populate
parity.
- #12 `BuiltinAdapter.step` gates integration on `inViewport ||
alwaysUpdate`; matter / planck don't. Test-environment quirk, but
useful to document.
No code changes — pure documentation alignment with 19.5 reality.
obiot
committed
May 21, 2026
b81354f
docs(quirks): rewrite #10 — dyn-dyn collision is position-based, not Newtonian
Earlier description claimed "net displacement is zero" between two
overlapping dynamic bodies. Empirical testing shows that's wrong:
position-based push-out IS mass-proportional (light pushed more than
heavy), and Body.respondToCollision honors bounce. What doesn't work
is velocity transfer — moving body's vel decays without transferring
momentum to the stationary one. Quirk now describes the actual
asymmetric / non-Newtonian end-state with a frame-by-frame example,
calls out which sub-behaviors do/don't work, and points at matter for
true elastic collisions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
obiot
committed
May 15, 2026
9f2c911
docs(quirks): add 2x onCollision cadence + symmetric dyn-dyn push-out cancellation
obiot
committed
May 15, 2026
d3b98d4
docs(home): link Migrating-to-the-Physics-Adapter-API and BuiltinAdapter-Quirks under Physics & Collision
obiot
committed
May 15, 2026
6a4164f
docs(physics): reconcile response-shape and migration pages with Path 2 + supersedes rule
obiot
committed
May 15, 2026
c86ac6c
docs(physics): add legacy-to-adapter migration page; link as prerequisite from switching guide
obiot
committed
May 15, 2026
e6ee8be
docs(physics): add BuiltinAdapter-Quirks page; cross-link from switching guide
obiot
committed
May 15, 2026
1b491bf
docs(physics): add Recipes section with 6 portable + matter-only patterns
obiot
committed
May 15, 2026
3ede034
docs(physics): lead with per-renderable collision dispatch; clarify response shape differs by adapter
obiot
committed
May 15, 2026
d5c4bdc
docs(upgrade-guide): document Light2d anchorPoint change in 19.3
obiot
committed
May 14, 2026
824701e
Add side-by-side porting example to Switching Physics Adapters
obiot
committed
May 14, 2026
8e75278
Updated Shader Effects (markdown)
obiot
committed
May 14, 2026
cb09c09
Updated Shader Effects (markdown)
obiot
committed
May 14, 2026
09ce777
Add Switching Physics Adapters page
obiot
committed
May 14, 2026
1fd1cc1
Add Cordova wiki page under Platform Deployment
Mirrors the Capacitor page structure but shorter. Prominent banner
notes that Cordova is in low-maintenance mode and points new
projects at Capacitor instead. FAQ updated to link the internal
Cordova page (was external link to cordova.apache.org) and to note
the maintenance status.
obiot
committed
May 11, 2026
a6726ee