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.

To make your pack available in the MMDX12 in-app gallery and the web index (https://mmdx.codingbot.kr/shader-packs/):

  1. Head to the MMDX12 GitHub Issues page.
  2. Open a new issue titled Shader pack: <Pack Name>.
  3. Include the following details in your submission:
    • Attached .zip archive 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

Maintainer Review Criteria

Every submitted pack is vetted against the following checklist before being merged:

  1. Clean Compilation: Must pass pack_check.exe <pack.zip> --compile with exit code 0.
  2. License and Copyright Compliance:
    • The license must explicitly allow public redistribution.
    • Code must not copy third-party shader logic or commercial assets without authorization.
  3. Preview Dimensions: Any included preview.png or preview.jpg must follow a standard 16:9 aspect ratio (such as 1280x720 or 1920x1080).
  4. Localization: We encourage populating name, description, recommendedFor, and parameter label across supported languages (ko, en, ja, zh).
  5. 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 version field in pack.json whenever publishing patches or new features (e.g. 1.0.0 to 1.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.json and presents an Update (업데이트) button whenever a newer release is discovered for an installed pack.