Publishing and Gallery Submission
Zip layout requirements, submitting to the official gallery, review criteria, versioning, and licensing guidelines.
Zip Archive Layout and Constraints
When distributing shader packs or submitting them to the official curated gallery, packages must be wrapped in a .zip archive. MMDX12 enforces strict safety and sanity checks during installation:
Archive Layout
The archive should contain a single top-level folder <id>/ holding all pack assets, or place the assets directly at the root of the archive:
my_pack.zip
└── my_pack/
├── pack.json
├── surface.hlsl
├── preview.png (optional)
├── README.md (optional)
└── LICENSE (optional)
File Rules
- Allowed Extensions:
pack.json,*.hlsl,*.hlsli,*.png,*.jpg,*.jpeg,*.md,*.txt,LICENSE*. - Forbidden Elements: Any symbolic links, hardlinks, executables (
.exe,.dll), or unknown file formats will cause the installer to reject the zip archive immediately. - Limits: Maximum 200 files, total uncompressed size not exceeding 32 MB.
Submitting to the Official Gallery
To make your pack available in the MMDX12 in-app gallery and the web index (https://mmdx.codingbot.kr/shader-packs/):
- Head to the MMDX12 GitHub Issues page.
- Open a new issue titled
Shader pack: <Pack Name>. - Include the following details in your submission:
- Attached
.ziparchive or link to a public repository - Before and after comparison screenshots (standard MMD lighting versus your pack)
- Stated open source redistribution license (MIT, Apache-2.0, CC-BY, etc.)
- Model compatibility notes and recommended settings
- Attached
Maintainer Review Criteria
Every submitted pack is vetted against the following checklist before being merged:
- Clean Compilation: Must pass
pack_check.exe <pack.zip> --compilewith exit code 0. - License and Copyright Compliance:
- The license must explicitly allow public redistribution.
- Code must not copy third-party shader logic or commercial assets without authorization.
- Preview Dimensions: Any included
preview.pngorpreview.jpgmust follow a standard 16:9 aspect ratio (such as 1280x720 or 1920x1080). - Localization: We encourage populating
name,description,recommendedFor, and parameterlabelacross supported languages (ko,en,ja,zh). - GPU Performance and Safety:
- Shaders run strictly on the GPU without file or network privileges.
- Keep loop iterations bounded to avoid GPU stalls or viewport frame drops.
Versioning and Updates
- Semantic Bumps: Increment the
versionfield inpack.jsonwhenever publishing patches or new features (e.g.1.0.0to1.0.1). - Immutable Distribution: The official gallery hosts each version as an independent versioned zip with a SHA-256 checksum recorded in
index.json. - In-App Update Prompt: MMDX12 periodically checks
index.jsonand presents an Update (업데이트) button whenever a newer release is discovered for an installed pack.