Ghostmaxxing A public lab for testing camouflage
Build and inspect

Improving Ghostmaxxing.

For Ghostyle authors, researchers, and contributors who need more than the functional guides.

Ghostmaxxing is a static browser application. The production interface loads HTML, CSS, JavaScript modules, model assets, and the Ghostyle manifest directly. Node scripts support tests, documentation, validation, and project maintenance.

Choose a route

Where to start?

If you need toStart withThen inspect
Create or modify a GhostyleGhostyle Authoring Guideghostyles/00-template.js
Call or integrate a runtime moduleGenerated JSDoclab-js/ source
Understand imports, pages, and eventsCode mapModule headers and event-bus source
Use the public browser APIGhostmaxxing.d.tswindow.gstmxx in main.js
Regenerate or package the projectMaintainer guidescripts-dev/
Released interfaces

Currently available webapp.

a few others are in development, but now it matters more to gain feedback.
PageControllerFunctional role
lab.htmllab-js/main.jsLive camera, local baseline, 2D and mesh views, Ghostyles, composite analysis.
loader.htmllab-js/loader.jsRepeatable comparison of frames from a local MP4.
Lab runtime

The controller coordinates specialised modules.

AreaPrimary modulesResponsibility
State and lifecyclemain.js, state.js, config.jsInitialisation, thresholds, shared state, public API, gstmxxReady.
Camera and persistencecamera.js, db.jsMedia stream, short recording, local saved-face records.
2D analysisengine.js, landmark-analysis.jsDetection, 68 landmarks, face descriptors, distance, result classification.
Mesh and visual embeddingmediapipe-loop.js, engine-3d.js478-point geometry and the separate experimental ImageEmbedder path.
Composite feedbackauto-find-loop.js, bbox-overlay.js, analyze-panel.jsSlower modified-image pass, live scaffold, status, metrics, report text.
Extensionsghostyles-manager.js, plugins3d-loader.js, ghostyle3d-uv-renderer.jsLoad 2D, UV, and hybrid Ghostyles and expose their controls.
Ghostyle plugin contract

Capabilities come from exports.

A Ghostyle is an ES module listed in ghostyles.json. Runtime capability is detected from exported functions, not from descriptive header tags.

ExportCapabilityRuntime constraint
onDraw(ctx, landmarks, box)2D canvas intervention anchored to face-api geometry.Runs on the rendering hot path. Keep it synchronous and guard missing landmarks.
paintUV(...)Texture painting for the MediaPipe mesh and UV renderer.Use the renderer contract documented by the template and generated API.
onInit()Optional setup.Pair resource allocation with cleanup.
onClear(ctx)Optional cleanup when the effect is cleared.Remove listeners and reset owned state.
paramsOptional parameter controls for supported plugin paths.Keep defaults deterministic and labels intelligible.

The header between ==Ghostyle== and ==/Ghostyle== records name, description, authorship, version, licence, technique, supported paths, regions, evidence, and references. The current validator checks only part of that editorial policy. Passing validation is not proof that every recommended field is present.

npm run validate:ghostyle -- ghostyles/your-ghostyle.js
Architecture invariant

Keep live tracking and composite evidence separate.

The live scaffold follows the unmodified camera frame for responsive visual feedback. The auto-find loop re-runs analysis on the Ghostyle composite at a slower cadence. Pointing both displays at one image would conflate two questions: “where is the face now?” and “what did the modified image do to the comparison?”

When changing either path, test the no-Ghostyle baseline, one 2D effect, one UV effect, detector absence, a matched descriptor, and a disagreement between the face-api and experimental ImageEmbedder paths.

Documentation layers

Documentation sources and generated output.

LayerSourceAudience
Functional guidesdocs-src/en/*.body.htmlPeople using a released interface. Translatable.
Technical orientationJSDOC_index.md and JSDoc tutorialsContributors choosing an entry point or learning a contract.
API referenceJSDoc comments in sourceDevelopers inspecting modules, functions, parameters, and events.
Maintainer operationsscripts-dev/README.mdPeople regenerating, validating, or packaging the project.

Do not place functional instructions only inside generated API pages. Do not duplicate complete symbol reference in the functional guide. Link across layers using stable terms and routes.