Skip to content
Merged
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
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/asset-problem.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Asset problem
description: Report a broken file, visual defect, import issue, or gallery problem.
title: "[Asset]: "
labels: [bug]
body:
- type: markdown
attributes:
value: Thanks for helping keep the ShadowPets pack game-ready. Please identify the exact pet and file whenever possible.
- type: dropdown
id: area
attributes:
label: Area
options:
- Static PNG
- Animation PNG frames
- Animated GIF
- Packed sprite sheet
- Motion Lab website
- Release ZIP or checksum
- Documentation or license
validations:
required: true
- type: input
id: asset
attributes:
label: Pet or file path
placeholder: ShadowPets/Luna.png or ShadowPets/Animations/Luna/greet.gif
- type: textarea
id: problem
attributes:
label: What happened?
description: Include the engine/browser, import settings, expected result, and actual result.
validations:
required: true
- type: textarea
id: evidence
attributes:
label: Screenshot or minimal reproduction
description: Drag in a screenshot, project snippet, or steps that reproduce the problem.
- type: checkboxes
id: checks
attributes:
label: Quick checks
options:
- label: I checked the live Motion Lab and the problem is still present.
required: true
- label: I searched existing issues for the same problem.
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: Preview the complete pack
url: https://throwingogo-hub.github.io/DigitalPets/
about: Check all 30 loops and three backdrop modes before reporting a visual issue.
- name: Reuse and attribution guide
url: https://github.com/throwingogo-hub/DigitalPets/blob/main/LICENSE-ASSETS.md
about: See what CC BY 4.0 allows and copy the practical credit text.
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/pet-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: New pet request
description: Propose a species or a small, reusable animation for a future pack update.
title: "[Request]: "
labels: [enhancement]
body:
- type: input
id: species
attributes:
label: Species or motion
placeholder: Moth companion or sleep loop
validations:
required: true
- type: textarea
id: use
attributes:
label: Where would this be useful?
description: Describe the game/UI context and why the existing ten pets or three motions do not cover it.
validations:
required: true
- type: textarea
id: constraints
attributes:
label: Silhouette or motion constraints
description: Note readability, anatomy, loop, or engine constraints—not a redesign of the shared ShadowPets style.
- type: checkboxes
id: license
attributes:
label: Licensing
options:
- label: I understand accepted visual contributions must be releasable under CC BY 4.0.
required: true
15 changes: 15 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## What changed

<!-- Name the exact files and explain the user-visible outcome. -->

## Validation

- [ ] I ran `python tools/validate_assets.py --check-rebuild --check-package`.
- [ ] The Motion Lab still works at narrow and wide viewport sizes.
- [ ] I did not regenerate or rewrite approved pet art unintentionally.
- [ ] New visual work can be released under CC BY 4.0; code/docs can be released under MIT.
- [ ] Counts, import guidance, license text, and screenshots are updated if the public pack changed.

## Visual evidence

<!-- Add before/after screenshots for gallery or asset changes. Leave "Not applicable" for code/docs-only work. -->
36 changes: 36 additions & 0 deletions .github/workflows/assets.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Asset checks

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: asset-checks-${{ github.ref }}
cancel-in-progress: true

jobs:
validate:
name: Validate pack and deterministic release
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
cache-dependency-path: requirements-dev.txt

- name: Install validator dependencies
run: python -m pip install -r requirements-dev.txt

- name: Validate assets, site, rebuild, and package
run: python tools/validate_assets.py --check-rebuild --check-package
45 changes: 45 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Publish asset pack

on:
push:
tags:
- "v*"

permissions:
contents: write

jobs:
release:
name: Verify and attach ShadowPets.zip
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Check out tagged source
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
cache-dependency-path: requirements-dev.txt

- name: Install validator dependencies
run: python -m pip install -r requirements-dev.txt

- name: Validate tagged pack
run: python tools/validate_assets.py --check-rebuild --check-package

- name: Build deterministic release files
run: python tools/package_release.py --output dist

- name: Create release or replace its assets
env:
GH_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ github.ref_name }}
run: |
if gh release view "$RELEASE_TAG" >/dev/null 2>&1; then
gh release upload "$RELEASE_TAG" dist/ShadowPets.zip dist/ShadowPets.zip.sha256 --clobber
else
gh release create "$RELEASE_TAG" dist/ShadowPets.zip dist/ShadowPets.zip.sha256 --generate-notes --title "ShadowPets $RELEASE_TAG"
fi
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
tmp/
.DS_Store
dist/
__pycache__/
12 changes: 12 additions & 0 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Attribution

Copy this line into your game's credits, README, or asset-credits file:

> ShadowPets by throwingogo-hub — https://github.com/throwingogo-hub/DigitalPets — licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).

If you changed the artwork, say so. For example:

> Based on ShadowPets by throwingogo-hub — https://github.com/throwingogo-hub/DigitalPets — modified by Example Studio, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).

See [`LICENSE-ASSETS.md`](LICENSE-ASSETS.md) for the full scope and practical
reuse guidance.
26 changes: 26 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Contributing to ShadowPets

Bug reports, import notes, and focused fixes are welcome. Use the asset-problem
issue form for a broken sprite, loop, packed sheet, gallery interaction, release
archive, or documentation link. Use the request form for a future species or
motion with a concrete game use case.

## Before opening a pull request

1. Install the pinned developer dependency with
`python3 -m pip install -r requirements-dev.txt`.
2. Keep the ten approved static sprites and their animation art unchanged unless
the issue explicitly calls for a reviewed visual correction.
3. Run `python3 tools/validate_assets.py --check-rebuild --check-package`.
4. Open `index.html` through a local static server and check the affected
interaction at phone and desktop widths.

The validator rebuilds derived animations and release archives in temporary
directories. It compares bytes without mutating tracked visual assets.

## Licensing contributions

By contributing code or documentation, you agree that it may be distributed
under the repository's MIT License. Only submit original visual work you have
the right to license under CC BY 4.0, because accepted ShadowPets visual assets
are distributed under that license.
43 changes: 43 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
ShadowPets is offered under two licenses, depending on what you use.

Visual assets
-------------

All image assets in ShadowPets/ and social-preview.png are licensed under the
Creative Commons Attribution 4.0 International license (CC BY 4.0):

https://creativecommons.org/licenses/by/4.0/

This includes the ten static pet PNGs, animation frames, GIFs, packed sheets,
and preserved source sheets. You may copy, modify, and use these assets in
commercial or non-commercial games and projects, provided you give appropriate
credit. See LICENSE-ASSETS.md for the exact scope and practical attribution.

Code and documentation
----------------------

All source code, automation, gallery HTML/CSS/JavaScript, workflows, templates,
and documentation in this repository are licensed under the MIT License below.
The MIT License does not replace the CC BY 4.0 terms for the visual assets.

MIT License

Copyright (c) 2026 throwingogo-hub

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
43 changes: 43 additions & 0 deletions LICENSE-ASSETS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# ShadowPets asset license

Copyright © 2026 throwingogo-hub.

The ShadowPets visual assets are licensed under the [Creative Commons
Attribution 4.0 International license][cc-by-4.0] (CC BY 4.0).

## Exact scope

CC BY 4.0 applies to:

- every image under `ShadowPets/`, including the ten static PNGs;
- every animation frame, GIF, packed sheet, and preserved source sheet; and
- `social-preview.png`, which is a composition of the same artwork.

It does not apply to code, automation, the gallery, workflows, templates, or
documentation. Those files use the MIT License in [`LICENSE`](LICENSE).

## What you may do

You may use, copy, share, remix, adapt, and build upon the visual assets in
commercial or non-commercial games and projects. You must give appropriate
credit, link to the license, and indicate if you changed the assets. You may
not add legal or technical restrictions that prevent others from exercising
the rights the license grants them.

## Copy-and-paste attribution

Unmodified assets:

> ShadowPets by throwingogo-hub — https://github.com/throwingogo-hub/DigitalPets — licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).

Modified assets:

> Based on ShadowPets by throwingogo-hub — https://github.com/throwingogo-hub/DigitalPets — modified by [YOUR NAME], licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).

Put the credit wherever your project normally keeps asset credits: an in-game
credits screen, README, documentation page, or accompanying credits file.

This summary does not replace the [CC BY 4.0 legal code][legal-code].

[cc-by-4.0]: https://creativecommons.org/licenses/by/4.0/
[legal-code]: https://creativecommons.org/licenses/by/4.0/legalcode
Loading
Loading