Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Bug report
description: Report a reproducible problem in an experience or its source.
title: "[Bug]: "
labels:
- bug
body:
- type: markdown
attributes:
value: Thanks for helping improve Mint Playground. Please keep security reports private as described in SECURITY.md.
- type: input
id: experience
attributes:
label: Experience slug
description: The directory name or live-demo slug, such as vanguard-protocol.
placeholder: vanguard-protocol
validations:
required: true
- type: textarea
id: problem
attributes:
label: What happened?
description: Describe the behavior and what you expected instead.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction steps
placeholder: |
1. Open …
2. Select …
3. Observe …
validations:
required: true
- type: input
id: environment
attributes:
label: Browser and device
placeholder: Chrome 140 on macOS 16, or Safari on iPhone 18
validations:
required: true
- type: textarea
id: evidence
attributes:
label: Screenshots, recordings, or console output
description: Remove tokens, personal data, and other sensitive information before posting.
- type: checkboxes
id: checks
attributes:
label: Checks
options:
- label: I searched existing issues for this problem.
required: true
- label: This is not a security vulnerability.
required: true
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Mint MCP documentation
url: https://mcp.mint.gg/docs
about: Get help installing or using Mint MCP.
- name: Play the experiences
url: https://play.mint.gg
about: Confirm whether a problem also appears in the deployed experience.
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/experience-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Experience request
description: Suggest a 3D experience or reusable pattern for a future Playground drop.
title: "[Experience]: "
labels:
- enhancement
body:
- type: textarea
id: concept
attributes:
label: Concept
description: What should someone be able to do, and why is it valuable as an open-source reference?
validations:
required: true
- type: dropdown
id: category
attributes:
label: Category
options:
- Browser game
- Product or commerce
- Data visualization or education
- Creative or editorial
- World or simulation
- Reusable Three.js pattern
validations:
required: true
- type: textarea
id: learning
attributes:
label: What should developers learn from it?
description: List the interaction, rendering, architecture, or performance patterns it would demonstrate.
validations:
required: true
- type: textarea
id: references
attributes:
label: References
description: Link to relevant open-source projects or original visual references. Do not attach unlicensed media.
- type: checkboxes
id: rights
attributes:
label: Rights check
options:
- label: The proposal does not depend on third-party characters, brands, or media that Mint lacks permission to publish.
required: true
21 changes: 21 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## What changed

<!-- Describe the user-visible result and why it is useful. -->

## Experience

<!-- Name the affected experience slug, or write "repository-wide". -->

## Verification

- [ ] `pnpm validate:catalog`
- [ ] The affected experience builds successfully
- [ ] Relevant tests pass
- [ ] I checked keyboard, touch, and reduced-motion behavior where applicable
- [ ] I included before-and-after captures for visual changes

## Contribution checks

- [ ] This change is focused and does not reformat unrelated files
- [ ] I have permission to publish all contributed code and media
- [ ] No credentials, production data, or downloaded Mint CDN assets are included
Binary file added .github/assets/experiences/boulder-cove.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/breakline.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/clicky.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/common-form.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/complete-shelf.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/dead-reckoning.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/dynasty-index.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/elemental-chess.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/final-whistle.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/financial-city.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/flappy-bird-3d.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/four-fields.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/helios-form.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/kirby-smash.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/mint-hoops.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/mint-putt.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/mossbound.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/neon-relic.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/experiences/orbit-week.webp
Binary file added .github/assets/experiences/periodic-table.webp
Binary file added .github/assets/experiences/pogo-man.webp
Binary file added .github/assets/experiences/project-forge-5.webp
Binary file added .github/assets/experiences/quadrotor-sandbox.webp
Binary file added .github/assets/experiences/reef-rivals.webp
Binary file added .github/assets/experiences/robot-store.webp
Binary file added .github/assets/experiences/room-ritual.webp
Binary file added .github/assets/experiences/seatline-nyc.webp
Binary file added .github/assets/experiences/sf-tennis-atlas.webp
Binary file added .github/assets/experiences/side-one.webp
Binary file added .github/assets/experiences/sleeping-snorlax.webp
Binary file added .github/assets/experiences/sole-archive.webp
Binary file added .github/assets/experiences/vanguard-protocol.webp
Binary file added .github/assets/social-preview.jpg
21 changes: 21 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
changelog:
exclude:
labels:
- skip-changelog
categories:
- title: New experiences
labels:
- new-experience
- title: Improvements and fixes
labels:
- enhancement
- bug
- title: Documentation
labels:
- documentation
- title: Dependency updates
labels:
- dependencies
- title: Other changes
labels:
- "*"
28 changes: 28 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Validate catalog

on:
pull_request:
push:
branches:
- main

permissions:
contents: read

concurrency:
group: validate-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
catalog:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
Comment on lines +21 to +22

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 security Mutable workflow action references

The workflow resolves both executable actions through mutable v4 tags, allowing upstream tag movement to change the code run in pull-request and main-branch validation without a repository change. Pin both actions to full commit SHAs to make these CI dependencies immutable.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex Fix in Claude Code

with:
node-version: 20
- name: Validate experience metadata and links
run: node scripts/validate-catalog.mjs
- name: Verify the experience launcher catalog
run: node scripts/play.mjs --list
44 changes: 44 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Contributor Covenant Code of Conduct

## Our pledge

We pledge to make participation in this project a harassment-free experience
for everyone, regardless of age, body size, visible or invisible disability,
ethnicity, sex characteristics, gender identity and expression, level of
experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our standards

Examples of behavior that contributes to a positive environment include:

- Demonstrating empathy and kindness toward other people.
- Respecting differing opinions, viewpoints, and experiences.
- Giving and gracefully accepting constructive feedback.
- Accepting responsibility and apologizing to those affected by our mistakes.
- Focusing on what is best for the overall community.

Examples of unacceptable behavior include harassment, trolling, insulting or
derogatory comments, publishing others' private information, and other conduct
which could reasonably be considered inappropriate in a professional setting.

## Enforcement

Project maintainers are responsible for clarifying and enforcing these
standards. They may remove, edit, or reject comments, commits, code, issues, and
other contributions that do not align with this Code of Conduct.

Report abusive, harassing, or otherwise unacceptable behavior privately through
the contact options at [mint.gg](https://mint.gg). All reports will be reviewed
and investigated promptly and fairly. Maintainers will respect the privacy and
security of reporters.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1.

[homepage]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
69 changes: 69 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Contributing to Mint Playground

Thanks for helping make these open-source 3D experiences easier to learn from,
run, and reuse.

## Good contributions

The most useful contributions are focused and easy to review:

- Fix a reproducible bug in one experience.
- Improve keyboard, touch, screen-reader, or reduced-motion support.
- Improve runtime performance or asset-loading behavior with measurements.
- Add tests for an existing system.
- Clarify setup instructions or explain a reusable Three.js pattern.
- Report a broken demo, source link, or catalog entry.

New experiences are generally published through Mint's release pipeline. Before
building one for this repository, open an experience request so the maintainers
can confirm its scope and publication path.

## Before you start

Search existing issues and pull requests first. For a substantial change, open
an issue describing the user problem and proposed approach before investing in
implementation. Issues labeled [`good first issue`](https://github.com/mintdotgg/mint-playground/labels/good%20first%20issue)
are intentionally small and should include enough context to begin.

Only contribute code and media you have permission to publish. Do not commit
credentials, production data, runtime assets downloaded from Mint CDN, or
third-party media without a compatible license and attribution. The curated
social cards under `.github/assets/experiences` are the intentional exception.

## Local setup

This repository uses Node.js 20 or newer and the pnpm version pinned in
`package.json`.

```bash
corepack enable
pnpm install --filter ./experiences/vanguard-protocol
pnpm play vanguard-protocol
```

Replace `vanguard-protocol` with any slug printed by `pnpm play --list`.

## Validate your change

Always validate the catalog and build the experience you changed:

```bash
pnpm validate:catalog
pnpm --filter ./experiences/vanguard-protocol build
```

Run experience-specific tests when its `package.json` defines a `test` script.
Use `pnpm build` only when you need to verify the entire workspace.

## Pull requests

- Keep a pull request focused on one experience or one repository-wide concern.
- Explain the user-visible result and how you verified it.
- Include before-and-after captures for visual changes.
- Preserve each experience's existing framework and style unless the issue
explicitly calls for a migration.
- Update `experience.json` and the root catalog when metadata or URLs change.
- Do not reformat unrelated files.

By contributing, you agree that your contribution will be licensed under the
repository's [MIT License](LICENSE).
Loading
Loading