Compare commits
74 Commits
ae3c38be17
...
main
Author | SHA1 | Date | |
---|---|---|---|
513504d175
|
|||
6542cb42a2
|
|||
5c5a7524ab
|
|||
c9357ce1cd
|
|||
51db7a18f7
|
|||
e629567d32
|
|||
b3064609cf
|
|||
85234ce522
|
|||
f743618b5f
|
|||
ce6dffbaf5
|
|||
d0c1319258
|
|||
7c8ab1c988
|
|||
52362b748b
|
|||
e46a4a560a
|
|||
1c3b37a70c
|
|||
ca15fa782d
|
|||
ba8eec5879
|
|||
0802b69c56
|
|||
c74299c2b1
|
|||
982589927f
|
|||
025914083c
|
|||
69a17c48f3
|
|||
352a9c18f5
|
|||
51723e0c44
|
|||
17f185f953
|
|||
7805a7dfa9
|
|||
41079e93c1
|
|||
a4423b18cf
|
|||
a37051afce
|
|||
e790264b99
|
|||
aa392b8122
|
|||
583e2ba10b
|
|||
e97c58a7a1
|
|||
ee5da382c9
|
|||
778490bed8
|
|||
1f45a74b2a
|
|||
63e0e1fd28
|
|||
e6ffefaa2e
|
|||
9445b3f2e3
|
|||
41a827d390
|
|||
c3dd168566
|
|||
b2c89275ec
|
|||
69792d4faf
|
|||
9617feed0c
|
|||
5852aa7ebd
|
|||
b43bf3860f
|
|||
027c7b2abc
|
|||
d22dc9374f
|
|||
f107a30048
|
|||
68a5c45fd5
|
|||
e1d61ac2e0
|
|||
640d0b15b2
|
|||
98641f3ddd
|
|||
8535965ea7
|
|||
e45c898ca1
|
|||
dd951fbce6 | |||
02a2d96ce5
|
|||
9537648437
|
|||
ddeefb0044
|
|||
b9d6b959dd
|
|||
321d776d0d
|
|||
8bbc49ff22
|
|||
7773d7c3ea
|
|||
a5f00515a5
|
|||
4b48554501
|
|||
608d9af232
|
|||
057b88437c
|
|||
f8ab08d76a
|
|||
1666351268
|
|||
9f4bc341e1
|
|||
c3704bd6c4
|
|||
7b42e5045b
|
|||
73cb49ae0c
|
|||
bf9e87d5bf
|
6
.editorconfig
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
end_of_line = crlf
|
8
.gitattributes
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
*.[pP][nN][gG] filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.otf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp3 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.[jJ][pP][eE][gG] filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jpeg filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
65
.gitea/workflows/deploy.yaml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
name: Build and Deploy to Web Server
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
lfs: true
|
||||||
|
|
||||||
|
- name: Cache Astro build cache folder
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
node_modules/.astro/
|
||||||
|
node_modules/.vite/
|
||||||
|
key: ${{ runner.os }}-buildcache
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v5
|
||||||
|
with:
|
||||||
|
node-version: 22
|
||||||
|
cache: npm
|
||||||
|
|
||||||
|
- name: Install
|
||||||
|
shell: "bash"
|
||||||
|
working-directory: .
|
||||||
|
run: npm install
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
shell: "bash"
|
||||||
|
working-directory: .
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Set up SSH
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_rsa
|
||||||
|
chmod 600 ~/.ssh/id_rsa
|
||||||
|
ssh-keyscan -H "${{ secrets.DEPLOY_HOST }}" >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
- name: Install rsync
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y rsync
|
||||||
|
|
||||||
|
- name: Deploy via rsync
|
||||||
|
run: |
|
||||||
|
rsync -avz --delete --exclude 'node_modules/' ./dist/ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ secrets.DEPLOY_DIRECTORY }}
|
||||||
|
|
||||||
|
- name: Copy package.json via rsync
|
||||||
|
run: |
|
||||||
|
rsync -avz ./package*.json ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ secrets.DEPLOY_DIRECTORY }}
|
||||||
|
|
||||||
|
- name: Install and restart service
|
||||||
|
run: |
|
||||||
|
ssh ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} '/home/deployers/${{ secrets.DEPLOY_USER }}/deploy.sh'
|
9
.vscode/extensions.json
vendored
@@ -1,4 +1,11 @@
|
|||||||
{
|
{
|
||||||
"recommendations": ["astro-build.astro-vscode"],
|
"recommendations": [
|
||||||
|
"astro-build.astro-vscode",
|
||||||
|
"bradlc.vscode-tailwindcss",
|
||||||
|
"unifiedjs.vscode-mdx",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"dbaeumer.vscode-eslint",
|
||||||
|
"EditorConfig.EditorConfig"
|
||||||
|
],
|
||||||
"unwantedRecommendations": []
|
"unwantedRecommendations": []
|
||||||
}
|
}
|
5
.vscode/settings.json
vendored
@@ -17,5 +17,8 @@
|
|||||||
],
|
],
|
||||||
"css.customData": [
|
"css.customData": [
|
||||||
".vscode/tailwind.json"
|
".vscode/tailwind.json"
|
||||||
]
|
],
|
||||||
|
"[mdx]": {
|
||||||
|
"editor.wordWrap": "on"
|
||||||
|
}
|
||||||
}
|
}
|
18
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "Run development webserver on startup",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "npm run dev",
|
||||||
|
"windows": {
|
||||||
|
"command": "npm run dev"
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"reveal": "always",
|
||||||
|
"panel": "new"
|
||||||
|
},
|
||||||
|
"runOptions": { "runOn": "folderOpen" }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
40
LICENSE
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
This repository contains both software source code and other creative works.
|
||||||
|
|
||||||
|
## Code licence
|
||||||
|
|
||||||
|
All software source code in this repository is licensed under the MIT License
|
||||||
|
below, unless otherwise indicated in a specific file's header.
|
||||||
|
|
||||||
|
## MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Nathan Cummins
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
## Non-code content licence
|
||||||
|
|
||||||
|
All non-code content in this repository — including, but not limited to, music
|
||||||
|
(including melodies, harmonies, arrangements, lyrics, sound recordings, and
|
||||||
|
other musical elements), audio recordings, images, photographs, written
|
||||||
|
biographies, descriptive texts, and project documentation — is copyright © 2025
|
||||||
|
Nathan Cummins, all rights reserved, unless otherwise stated in the file itself.
|
||||||
|
|
||||||
|
Such non-code content may not be copied, modified, distributed, or otherwise
|
||||||
|
used without prior written permission from Nathan Cummins, except where
|
||||||
|
explicitly provided under a separate licence or allowed by law.
|
19
README.md
@@ -2,17 +2,19 @@
|
|||||||
|
|
||||||
## [nathancummins.com.au](https://www.nathancummins.com.au)
|
## [nathancummins.com.au](https://www.nathancummins.com.au)
|
||||||
|
|
||||||
This repo contains the source for my personal portfolio website at [nathancummins.com.au](https://www.nathancummins.com.au) that features projects bios, skills, music, and projects that I have worked on.
|
This repo contains the source and creative materials for my personal portfolio website at [nathancummins.com.au](https://www.nathancummins.com.au) which showcases my projects, skills, music, and biography.
|
||||||
|
You are free to use any code in this repository under the conditions of the license as described below and in the [LICENSE file](LICENSE).
|
||||||
|
|
||||||
Thanks for checking it out!
|
Thanks for checking it out!
|
||||||
|
|
||||||
## TL;DR
|
## TL;DR
|
||||||
|
|
||||||
Please feel free to fork, clone, modify, or otherwise make use of any source code in this website for your own projects.
|
- **Code:** All source code in this repository is licensed under the [MIT License](LICENSE). You are welcome to fork, clone, modify, or otherwise use the code in your own projects, provided you give appropriate credit.
|
||||||
This does not include all copyrighted materials (or any materials that are otherwise intellectual property), including audio files, imagery, and some text relating especially relating to projects or biographical information.
|
- **Non-code content:** All other materials — including music and audio (melodies, harmonies, arrangements, lyrics, sound recordings, and other musical elements and audio), images, photographs, written biographies, project descriptions, and any other creative works — are copyright © 2025 Nathan Cummins, **all rights reserved**. These may not be copied, modified, distributed, or otherwise used without prior written permission.
|
||||||
I kindly request that you refrain from obtaining any of these materials via any method.
|
|
||||||
|
|
||||||
If you use anything from this repository I would appreciate proper credit by linking back to my [website](https://www.nathancummins.com.au) or at least by including my name and email address ([nathan@nathancummins.com.au](https://www.nathancummins.com.au)).
|
If you use the code, I would appreciate proper credit by linking back to my [website](https://www.nathancummins.com.au) or including my name and email ([nathan@nathancummins.com.au](https://www.nathancummins.com.au)).
|
||||||
I'd also love to know how you have made use of it - reach out and let me know and I'd love to see what you've done!
|
|
||||||
|
I’d also love to see what you've made — feel free to get in touch!
|
||||||
|
|
||||||
## Built With
|
## Built With
|
||||||
|
|
||||||
@@ -29,8 +31,11 @@ This website was built primarily with the following technologies:
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
**🎵 A persistent audio player that works across all pages**
|
**🎵 A persistent audio player that works across all pages**
|
||||||
|
|
||||||
**📄 Finally (for me!) a multi-page layout that's easy to add more content to**
|
**📄 Finally (for me!) a multi-page layout that's easy to add more content to**
|
||||||
|
|
||||||
**📱Fully responsive**
|
**📱Fully responsive**
|
||||||
|
|
||||||
**🕶️ Built with dark mode and other accessibility features in mind**
|
**🕶️ Built with dark mode and other accessibility features in mind**
|
||||||
|
|
||||||
## Installation and Setup
|
## Installation and Setup
|
||||||
@@ -44,7 +49,7 @@ This website was built primarily with the following technologies:
|
|||||||
To build, as with most Astro projects, simply run `npm run build`, which currently outputs the built website to the `dist` folder.
|
To build, as with most Astro projects, simply run `npm run build`, which currently outputs the built website to the `dist` folder.
|
||||||
Eventually, this website will automatically deploy via my custom-built deployment system and self-hosted server environment (todo!).
|
Eventually, this website will automatically deploy via my custom-built deployment system and self-hosted server environment (todo!).
|
||||||
|
|
||||||
### Show your support
|
## Show your support
|
||||||
|
|
||||||
You sharing my website is all the support I need.
|
You sharing my website is all the support I need.
|
||||||
However, if you'd like to support me in any other way, please feel free to get in touch!
|
However, if you'd like to support me in any other way, please feel free to get in touch!
|
||||||
|
@@ -8,6 +8,14 @@ import icon from "astro-icon";
|
|||||||
|
|
||||||
import mdx from "@astrojs/mdx";
|
import mdx from "@astrojs/mdx";
|
||||||
|
|
||||||
|
import sitemap from "@astrojs/sitemap";
|
||||||
|
|
||||||
|
import robotsTxt from "astro-robots-txt";
|
||||||
|
|
||||||
|
import { transformerMetaHighlight } from "@shikijs/transformers";
|
||||||
|
|
||||||
|
import node from "@astrojs/node";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
vite: {
|
vite: {
|
||||||
@@ -24,15 +32,36 @@ export default defineConfig({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
integrations: [icon(), mdx()],
|
integrations: [icon(), mdx(), sitemap(), robotsTxt()],
|
||||||
|
|
||||||
|
markdown: {
|
||||||
|
shikiConfig: {
|
||||||
|
transformers: [
|
||||||
|
transformerMetaHighlight(),
|
||||||
|
{
|
||||||
|
pre(hast) {
|
||||||
|
hast.properties["data-meta"] = this.options.meta?.__raw;
|
||||||
|
hast.properties["data-code"] = this.source;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
themes: {
|
||||||
|
light: "github-light",
|
||||||
|
dark: "github-dark"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
site: "https://www.nathancummins.com.au",
|
site: "https://www.nathancummins.com.au",
|
||||||
|
|
||||||
trailingSlash: "always",
|
trailingSlash: "always",
|
||||||
|
|
||||||
image: {
|
image: {
|
||||||
responsiveStyles: true
|
responsiveStyles: false
|
||||||
},
|
},
|
||||||
|
|
||||||
output: "static"
|
output: "static",
|
||||||
|
|
||||||
|
adapter: node({
|
||||||
|
mode: "standalone"
|
||||||
|
})
|
||||||
});
|
});
|
5026
package-lock.json
generated
11
package.json
@@ -3,13 +3,15 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev --host",
|
||||||
"build": "astro build",
|
"build": "astro build",
|
||||||
"preview": "astro preview",
|
"preview": "astro preview",
|
||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/mdx": "^4.3.1",
|
"@astrojs/mdx": "^4.3.1",
|
||||||
|
"@astrojs/node": "^9.4.3",
|
||||||
|
"@astrojs/sitemap": "^3.4.2",
|
||||||
"@iconify-json/fa": "^1.2.1",
|
"@iconify-json/fa": "^1.2.1",
|
||||||
"@iconify-json/fa7-brands": "^1.2.0",
|
"@iconify-json/fa7-brands": "^1.2.0",
|
||||||
"@iconify-json/fa7-solid": "^1.2.0",
|
"@iconify-json/fa7-solid": "^1.2.0",
|
||||||
@@ -18,11 +20,18 @@
|
|||||||
"@tailwindcss/vite": "^4.1.11",
|
"@tailwindcss/vite": "^4.1.11",
|
||||||
"astro": "^5.12.8",
|
"astro": "^5.12.8",
|
||||||
"astro-icon": "^1.1.5",
|
"astro-icon": "^1.1.5",
|
||||||
|
"astro-robots-txt": "^1.0.0",
|
||||||
|
"astro-seo-schema": "^5.1.0",
|
||||||
|
"get-audio-duration": "^4.0.1",
|
||||||
|
"nodemailer": "^7.0.5",
|
||||||
|
"schema-dts": "^1.1.5",
|
||||||
"tailwindcss": "^4.1.11"
|
"tailwindcss": "^4.1.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cspell/dict-en-au": "^1.1.4",
|
"@cspell/dict-en-au": "^1.1.4",
|
||||||
|
"@shikijs/transformers": "^3.9.2",
|
||||||
"@types/howler": "^2.2.12",
|
"@types/howler": "^2.2.12",
|
||||||
|
"@types/nodemailer": "^7.0.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.38.0",
|
"@typescript-eslint/eslint-plugin": "^8.38.0",
|
||||||
"@typescript-eslint/parser": "^8.38.0",
|
"@typescript-eslint/parser": "^8.38.0",
|
||||||
"eslint": "^9.32.0",
|
"eslint": "^9.32.0",
|
||||||
|
@@ -3,7 +3,14 @@ title: Awoken
|
|||||||
role: Principal Orchestrator
|
role: Principal Orchestrator
|
||||||
type: Feature Film
|
type: Feature Film
|
||||||
date: 2019-07-01
|
date: 2019-07-01
|
||||||
description: Three young misfits venture into the Australian outback to find what they believe is a meteorite that has crash landed near their country town, only to discover it's something far more mysterious.
|
slug: awoken
|
||||||
|
description: A young medical student attempts to cure her brother from a terminal sleep illness, called fatal familial insomnia, where you are unable to sleep until you die. On her quest to help him, a more sinister reason for his condition is revealed.
|
||||||
|
keyFigure:
|
||||||
|
- title: Composed by
|
||||||
|
name: Christopher Larkin
|
||||||
|
href: https://composerlarkin.com
|
||||||
|
- title: Directed by
|
||||||
|
name: Daniel J. Phillips
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,7 +3,14 @@ title: Barbecue
|
|||||||
role: Additional Orchestration
|
role: Additional Orchestration
|
||||||
type: Feature Film
|
type: Feature Film
|
||||||
date: 2017-07-01
|
date: 2017-07-01
|
||||||
|
slug: barbecue
|
||||||
description: The rituals, stories and traditions surrounding the process of cooking meat over an open flame are shared by numerous cultures around the world.
|
description: The rituals, stories and traditions surrounding the process of cooking meat over an open flame are shared by numerous cultures around the world.
|
||||||
|
keyFigure:
|
||||||
|
- title: Composed by
|
||||||
|
name: Christopher Larkin
|
||||||
|
href: https://composerlarkin.com
|
||||||
|
- title: Directed by
|
||||||
|
name: Matthew Salleh
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,6 +3,10 @@ title: Down To Earth
|
|||||||
role: Composer
|
role: Composer
|
||||||
type: Short Film
|
type: Short Film
|
||||||
date: 2020-07-01
|
date: 2020-07-01
|
||||||
|
slug: down-to-earth
|
||||||
|
keyFigure:
|
||||||
|
- title: Directed by
|
||||||
|
name: Nick Crowhurst
|
||||||
description: Three young misfits venture into the Australian outback to find what they believe is a meteorite that has crash landed near their country town, only to discover it's something far more mysterious.
|
description: Three young misfits venture into the Australian outback to find what they believe is a meteorite that has crash landed near their country town, only to discover it's something far more mysterious.
|
||||||
images:
|
images:
|
||||||
{
|
{
|
91
projects/dungeons-and-dining-tables.mdx
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
---
|
||||||
|
title: Dungeons and Dining Tables
|
||||||
|
role: Composer and Sound Designer
|
||||||
|
type: Video Game
|
||||||
|
date: 2026-07-01
|
||||||
|
slug: dungeons-and-dining-tables
|
||||||
|
ongoing: true
|
||||||
|
description: "Delve dungeons to collect rare furniture, take that furniture back to your home to decorate and the cosier your house is, the higher your stats! 🪑🏡⚔️ Go forth and drive the grumpiness from the land: Your perfect home is just a dungeon away! Oh, and you play as an Axolotl 🥳"
|
||||||
|
keyFigure:
|
||||||
|
- title: Developed by
|
||||||
|
name: Catalyst Games
|
||||||
|
frontPage:
|
||||||
|
order: 1
|
||||||
|
images:
|
||||||
|
{
|
||||||
|
"hero":
|
||||||
|
{
|
||||||
|
"src": "nathan-cummins-dungeons-and-dining-tables-1.jpg",
|
||||||
|
"alt": "The Dungeons and Dining Tables main character, an axolotl, looking over a valley."
|
||||||
|
},
|
||||||
|
"other": "dungeons-and-dining-tables"
|
||||||
|
}
|
||||||
|
externalLinks:
|
||||||
|
[
|
||||||
|
{ "name": "Website", "href": "https://dndt.link", "icon": "mdi:web" },
|
||||||
|
{
|
||||||
|
"name": "Steam",
|
||||||
|
"href": "https://dndt.link/steam",
|
||||||
|
"icon": "fa7-brands:steam"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
---
|
||||||
|
|
||||||
|
import TrackInline from "@components/TrackInline.astro";
|
||||||
|
|
||||||
|
<small>
|
||||||
|
_This page contains just a few details of my involvement in the project. I
|
||||||
|
will continue to update it and add more details while the game develops (and
|
||||||
|
when I get the time to!)_.
|
||||||
|
</small>
|
||||||
|
|
||||||
|
Since late 2023 I have had the pleasure of working with the team at Catalyst Games on the cozy-adventure RPG _Dungeons and Dining Tables_, a game where you play as an axolotl on a quest to decorate their house.
|
||||||
|
This little axolotl and the team around it have since become key figures in my life and I consider myself privileged to be a part of the project's development.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# My Role
|
||||||
|
|
||||||
|
While I joined the team partway through the development of the project, I have still been involved since quite early in the development timeline as a composer, sound designer, and also as a programmer responsible for almost all integration of audio.
|
||||||
|
This has allowed me to deeply integrate both music and sound into the game and with cross-pollination of the two together, from birds that tweet the melody of the area that you are in, to music that mixes between highly orchestrated pieces to music for jazz quartet, to custom designed logic allowing sounds to be obscured by objects in the game-world.
|
||||||
|
|
||||||
|
# The Gameplay and My Approach
|
||||||
|
|
||||||
|
While I can't share too much currently, the [steam page](https://store.steampowered.com/app/2941630/Dungeons_and_Dining_Tables/) has a good overview of the the gameplay:
|
||||||
|
|
||||||
|
> Dungeons and Dining Tables is a Cozy-Adventure RPG where you play as an Axolotl on a quest to decorate their house and defeat the termites out to eat their furniture!
|
||||||
|
>
|
||||||
|
> Randomly generated dungeons to explore with puzzles to complete, enemies to defeat and rare furniture loot to collect. Travel through the World Tree, take on new rogue-like challenges and defeat bosses for the most epic of furnishings (maybe even a Legendary Bed of Maximum Health!)
|
||||||
|
>
|
||||||
|
> Furniture collected on a dungeon run can be used to decorate not only your humble home but also the homes of the cute and quirky characters of the town of Kindlerest! Decorating your home will give you comfy points that are used to level up your house, improve player stats, upgrade shops and other quality of life features for your dungeon runs.
|
||||||
|
|
||||||
|
Considering the gameplay, my approach to the audio has been to make it as dynamic and responsive to the gameplay as possible, with reactive music and sound design that not only compliments but heightens the user experience.
|
||||||
|
This is best exemplified by the music of the town _Kindlerest_, which is a cosy orchestral piece (with some hustle-and-bustle for good measure) that transitions seamlessly to a jazz quartet piece (_Pine for a Tune_) while you are decorating your house via some simple layering in FMOD.
|
||||||
|
|
||||||
|
<div class="my-4">
|
||||||
|
<TrackInline id="dndt-kindlerest" />
|
||||||
|
<TrackInline id="dndt-pine-for-a-tune" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
# My Inspiration
|
||||||
|
|
||||||
|
Throughout the project my inspiration has been drawn from a variety of sources.
|
||||||
|
Primarily and probably unsurprisingly, I have drawn a lot of inspiration from the art style itself and in particular the animations done by the extremely talented Ty Hemi.
|
||||||
|
The art style and animations are so full of character that it is difficult not to be inspired by them and as a result my sound design work tries to reflect the same character and charm.
|
||||||
|
|
||||||
|
I have also of course taken a lot of inspiration from games that have been significant to my development as a composer and as a sound designer.
|
||||||
|
The games that have inspired me the most include _Super Mario Galaxy_ and many games from the _The Legend of Zelda_ series, in particular the approach to the sound design of _The Legend of Zelda: Breath of the Wild_.
|
||||||
|
It is also impossible to ignore the influence of the _Animal Crossing_ series, in particular _Animal Crossing: New Horizons_ which is most evident in the UI sounds.
|
||||||
|
|
||||||
|
# Listen
|
||||||
|
|
||||||
|
<div class="my-4">
|
||||||
|
<TrackInline id="dndt-lampshade-grove" />
|
||||||
|
<TrackInline id="dndt-kindlerest" />
|
||||||
|
<TrackInline id="dndt-pine-for-a-tune" />
|
||||||
|
<TrackInline id="dndt-the-couch-troll" />
|
||||||
|
<TrackInline id="dndt-the-couch-trolls-lair" />
|
||||||
|
<TrackInline id="dndt-gameplay-trailer" />
|
||||||
|
</div>
|
@@ -3,7 +3,13 @@ title: Ella
|
|||||||
role: Composer
|
role: Composer
|
||||||
type: Short Film
|
type: Short Film
|
||||||
date: 2013-07-01
|
date: 2013-07-01
|
||||||
|
slug: ella
|
||||||
description: When Ella learns that her sister Gracie is sick, Ella must turn to the stars to help heal her sister.
|
description: When Ella learns that her sister Gracie is sick, Ella must turn to the stars to help heal her sister.
|
||||||
|
keyFigure:
|
||||||
|
- title: Directed by
|
||||||
|
name: Jess Cahill
|
||||||
|
- title: Winner of
|
||||||
|
name: NASA Humans In Space Art Challenge, viewed in the International Space Station
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,7 +3,12 @@ title: Frontier Quest
|
|||||||
role: Composer and Sound Designer
|
role: Composer and Sound Designer
|
||||||
type: Video Game
|
type: Video Game
|
||||||
date: 2021-02-01
|
date: 2021-02-01
|
||||||
|
slug: frontier-quest
|
||||||
description: Rebuild a frontier town and become acquainted with its community in puzzle-RPG Frontier Quest! Explore the frontier, collect materials and defeat monsters with the right equipment in order to restore the town and uncover the secrets of the frontier.
|
description: Rebuild a frontier town and become acquainted with its community in puzzle-RPG Frontier Quest! Explore the frontier, collect materials and defeat monsters with the right equipment in order to restore the town and uncover the secrets of the frontier.
|
||||||
|
keyFigure:
|
||||||
|
- title: Developed by
|
||||||
|
name: Stellar Advent
|
||||||
|
href: https://stellaradvent.com/
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
39
projects/hollow-knight-silksong.mdx
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
title: "Hollow Knight: Silksong"
|
||||||
|
role: Orchestration and Typesetting
|
||||||
|
type: Video Game
|
||||||
|
date: 2025-09-04
|
||||||
|
slug: hollow-knight-silksong
|
||||||
|
description: "Discover a vast, haunted kingdom in Hollow Knight: Silksong! Explore, fight and survive as you ascend to the peak of a land ruled by silk and song."
|
||||||
|
keyFigure:
|
||||||
|
- title: Composed by
|
||||||
|
name: Christopher Larkin
|
||||||
|
href: https://composerlarkin.com
|
||||||
|
- title: Developed by
|
||||||
|
name: Team Cherry
|
||||||
|
href: https://www.teamcherry.com.au/
|
||||||
|
frontPage:
|
||||||
|
order: 2
|
||||||
|
images:
|
||||||
|
{
|
||||||
|
"hero":
|
||||||
|
{
|
||||||
|
"src": "nathan-cummins-hollow-knight-silksong-1.png",
|
||||||
|
"alt": "The main playable character of Hollow Knight: Silksong."
|
||||||
|
},
|
||||||
|
"other": "hollow-knight-silksong"
|
||||||
|
}
|
||||||
|
externalLinks:
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Website",
|
||||||
|
"href": "https://hollowknightsilksong.com/",
|
||||||
|
"icon": "mdi:web"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Steam",
|
||||||
|
"href": "https://store.steampowered.com/app/1030300/Hollow_Knight_Silksong/",
|
||||||
|
"icon": "fa7-brands:steam"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
---
|
@@ -3,7 +3,12 @@ title: Lucie's Potager
|
|||||||
role: Composer and Sound Designer
|
role: Composer and Sound Designer
|
||||||
type: Video Game
|
type: Video Game
|
||||||
date: 2023-02-01
|
date: 2023-02-01
|
||||||
|
slug: lucies-potager
|
||||||
description: Farm and sell exotic plants with Lucie in this shopkeeping RPG!
|
description: Farm and sell exotic plants with Lucie in this shopkeeping RPG!
|
||||||
|
keyFigure:
|
||||||
|
- title: Developed by
|
||||||
|
name: Stellar Advent
|
||||||
|
href: https://stellaradvent.com/
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -1,9 +1,14 @@
|
|||||||
---
|
---
|
||||||
title: Meowing Point
|
title: Meowing Point
|
||||||
role: Additional Music
|
role: Additional Music (Single Track)
|
||||||
type: Video Game
|
type: Video Game
|
||||||
date: 2023-10-01
|
date: 2023-10-01
|
||||||
|
slug: meowing-point
|
||||||
description: Point and meow. 3D hidden cat game. These creatures have been turned into stone. Find and save them all.
|
description: Point and meow. 3D hidden cat game. These creatures have been turned into stone. Find and save them all.
|
||||||
|
keyFigure:
|
||||||
|
- title: Developed by
|
||||||
|
name: Francisco Martinez
|
||||||
|
href: https://yofrancisco.com/
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,8 +3,13 @@ title: "Music With Motion: Down Under"
|
|||||||
role: Conductor / Artistic Director
|
role: Conductor / Artistic Director
|
||||||
type: Concert
|
type: Concert
|
||||||
date: 2025-11-15
|
date: 2025-11-15
|
||||||
|
slug: music-with-motion-down-under
|
||||||
|
keyFigure:
|
||||||
|
- title: Performed by
|
||||||
|
name: Woodville Concert Band
|
||||||
|
href: https://www.woodvillecb.com.au/2025/music-with-motion-down-under/
|
||||||
description: "Music With Motion: Down Under is a dynamic celebration of Australia's video game soundtracks—performed live by a full wind orchestra and synchronised in real time with stunning visuals on the big screen. Premiering all-new orchestrations created especially for this event by award-winning Artistic Director Dr Nathan Cummins, the performance showcases music from games developed across the country, including several from right here in South Australia. Many of these games have never had their music performed live, and you'll be among the very first to hear it."
|
description: "Music With Motion: Down Under is a dynamic celebration of Australia's video game soundtracks—performed live by a full wind orchestra and synchronised in real time with stunning visuals on the big screen. Premiering all-new orchestrations created especially for this event by award-winning Artistic Director Dr Nathan Cummins, the performance showcases music from games developed across the country, including several from right here in South Australia. Many of these games have never had their music performed live, and you'll be among the very first to hear it."
|
||||||
frontPage: { "order": 2 }
|
frontPage: { "order": 3 }
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
21
projects/pixelated-symphonies.mdx
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
title: Pixelated Symphonies
|
||||||
|
role: Conductor / Artistic Director
|
||||||
|
type: Concert
|
||||||
|
date: 2025-03-09
|
||||||
|
slug: pixelated-symphonies
|
||||||
|
description: "A symphonic exploration of video game music with 14 commissioned arrangements. Experience the magic of these legendary symphonic video game soundtracks like never before! Join [the Adelaide Wind Orchestra] for an unforgettable concert of musical enchantment as video game industry insider and composer Dr Nathan Cummins and AWO take you on a wild ride through this iconic music. From the epic adventures of Super Mario to the heartwarming melodies of The Legend of Zelda, immerse yourself and be swept away by the brilliance of Australia's leading symphonic wind orchestra."
|
||||||
|
frontPage: { "order": 4 }
|
||||||
|
keyFigure:
|
||||||
|
- title: Performed by
|
||||||
|
name: Adelaide Wind Orchestra
|
||||||
|
href: https://www.awo.org.au/
|
||||||
|
images:
|
||||||
|
{
|
||||||
|
"hero":
|
||||||
|
{
|
||||||
|
"src": "nathan-cummins-pixelated-symphonies-1.jpg",
|
||||||
|
"alt": "The key artwork for the concert Pixelated Symphonies."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
---
|
@@ -3,8 +3,15 @@ title: Roc's Odyssey
|
|||||||
role: Composer and Sound Designer
|
role: Composer and Sound Designer
|
||||||
type: Video Game
|
type: Video Game
|
||||||
date: 2025-02-21
|
date: 2025-02-21
|
||||||
|
slug: rocs-odyssey
|
||||||
description: Explore vast landscapes and get lost in a beautiful yet dangerous world in Roc's Odyssey. Filled with intense combat, strange allies, platforming, enemies, treasures, secrets, upgrades, friendships and lore this hand drawn action adventure will have you hooked!
|
description: Explore vast landscapes and get lost in a beautiful yet dangerous world in Roc's Odyssey. Filled with intense combat, strange allies, platforming, enemies, treasures, secrets, upgrades, friendships and lore this hand drawn action adventure will have you hooked!
|
||||||
frontPage: { "order": 4 }
|
frontPage: { "order": 6 }
|
||||||
|
keyFigure:
|
||||||
|
- title: Developed by
|
||||||
|
name: Sunshine Festival Studios
|
||||||
|
href: https://www.sunshinefestivalstudios.com/
|
||||||
|
- title: Director / Lead Developer
|
||||||
|
name: Hari "Graig" Dimitriou
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,7 +3,12 @@ title: Scooter
|
|||||||
role: Composer
|
role: Composer
|
||||||
type: Short Film
|
type: Short Film
|
||||||
date: 2022-02-21
|
date: 2022-02-21
|
||||||
|
slug: scooter
|
||||||
description: An eccentric senior citizen who would like to visit his daughter one last time sets him off on an epic 250km journey from the outback to the city on his trusty scooter.
|
description: An eccentric senior citizen who would like to visit his daughter one last time sets him off on an epic 250km journey from the outback to the city on his trusty scooter.
|
||||||
|
keyFigure:
|
||||||
|
- title: Directed by
|
||||||
|
name: John deCaux / Six Foot Four Productions
|
||||||
|
href: https://sixfootfourproductions.com.au
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,7 +3,12 @@ title: "Submerged: Hidden Depths"
|
|||||||
role: Music Transcription & Preparation
|
role: Music Transcription & Preparation
|
||||||
type: Video Game
|
type: Video Game
|
||||||
date: 2020-10-22
|
date: 2020-10-22
|
||||||
|
slug: submerged-hidden-depths
|
||||||
description: Boat, climb, interact and explore in the beautiful ruins of a sunken world.
|
description: Boat, climb, interact and explore in the beautiful ruins of a sunken world.
|
||||||
|
keyFigure:
|
||||||
|
- title: Composed by
|
||||||
|
name: Jeff van Dyck
|
||||||
|
href: https://jeffvandyck.com/
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
@@ -3,7 +3,12 @@ title: The Lion and the Mouse
|
|||||||
role: Composer
|
role: Composer
|
||||||
type: Concert Music
|
type: Concert Music
|
||||||
date: 2024-10-12
|
date: 2024-10-12
|
||||||
|
slug: the-lion-and-the-mouse
|
||||||
description: "A piece for narrator and orchestra (or wind orchestra) that aims to teach children about music and the instruments of the orchestra. Experience the beloved Aesop fable come to life, through wind instruments and storytelling designed to inspire the imagination of children and families."
|
description: "A piece for narrator and orchestra (or wind orchestra) that aims to teach children about music and the instruments of the orchestra. Experience the beloved Aesop fable come to life, through wind instruments and storytelling designed to inspire the imagination of children and families."
|
||||||
|
keyFigure:
|
||||||
|
- title: Performed by
|
||||||
|
name: Woodville Concert Band
|
||||||
|
href: https://www.woodvillecb.com.au/2024/the-lion-and-the-mouse/
|
||||||
frontPage: { "order": 5 }
|
frontPage: { "order": 5 }
|
||||||
images:
|
images:
|
||||||
{
|
{
|
@@ -3,7 +3,12 @@ title: TOHU
|
|||||||
role: Brass Arrangement (Junkle), Orchestration (Circus)
|
role: Brass Arrangement (Junkle), Orchestration (Circus)
|
||||||
type: Video Game
|
type: Video Game
|
||||||
date: 2021-10-22
|
date: 2021-10-22
|
||||||
|
slug: tohu
|
||||||
description: Experience a brand new adventure game set amongst a world of weird and wonderful fish planets. Explore beautiful environments, solve intricate puzzles and discover the truth about a mysterious little girl and her mechanical alter-ego, Cubus.
|
description: Experience a brand new adventure game set amongst a world of weird and wonderful fish planets. Explore beautiful environments, solve intricate puzzles and discover the truth about a mysterious little girl and her mechanical alter-ego, Cubus.
|
||||||
|
keyFigure:
|
||||||
|
- title: Composed by
|
||||||
|
name: Christopher Larkin
|
||||||
|
href: https://composerlarkin.com
|
||||||
images:
|
images:
|
||||||
{
|
{
|
||||||
"hero":
|
"hero":
|
BIN
public/audio/dungeons-and-dining-tables/Dungeons_and_Dining_Tables.mp3
(Stored with Git LFS)
Normal file
BIN
public/audio/dungeons-and-dining-tables/Kindlerest.mp3
(Stored with Git LFS)
Normal file
BIN
public/audio/dungeons-and-dining-tables/Pine_for_a_Tune.mp3
(Stored with Git LFS)
Normal file
BIN
public/audio/dungeons-and-dining-tables/The_Couch_Troll.mp3
(Stored with Git LFS)
Normal file
BIN
public/audio/dungeons-and-dining-tables/The_Couch_Trolls_Lair.mp3
(Stored with Git LFS)
Normal file
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 130 B |
Before Width: | Height: | Size: 265 KiB After Width: | Height: | Size: 131 B |
@@ -1,4 +1,4 @@
|
|||||||
Nathan Cummins is an award-winning composer, orchestrator, conductor, and performer, based in Adelaide, South Australia.
|
Nathan Cummins is an award-winning composer, orchestrator, conductor, and sound designer based in Adelaide, South Australia.
|
||||||
He specialises in crafted orchestration for video games, film, and television with a focus on live and vibrant textures across multiple genres and mediums.
|
He specialises in crafted orchestration for video games, film, and television with a focus on live and vibrant textures across multiple genres and mediums.
|
||||||
His original works and orchestrations have featured prominently in media and in the concert hall, including performances by the Australian String Quartet, the Elder Conservatorium Wind Orchestra, and the Gold Coast Philharmonic Orchestra.
|
His original works and orchestrations have featured prominently in media and in the concert hall, including performances by the Australian String Quartet, the Elder Conservatorium Wind Orchestra, and the Gold Coast Philharmonic Orchestra.
|
||||||
His orchestrations have been used in concerts and recording sessions throughout the world.
|
His orchestrations have been used in concerts and recording sessions throughout the world.
|
||||||
|
@@ -1,2 +1,2 @@
|
|||||||
Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance.
|
Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance.
|
||||||
Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project—from the playful music of _Dungeons and Dining Tables_, to the orchestration on _Awoken_ (composed by Christopher Larkin), and to directing multimedia concert events that bring game music to life on stage.
|
Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project—from the playful music of _Dungeons and Dining Tables_, to the orchestration of _Hollow Knight: Silksong_ (composed by Christopher Larkin), and to directing multimedia concert events that bring game music to life on stage.
|
||||||
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 132 B |
BIN
src/assets/img/about/nathan-cummins-composer-orchestrator-conductor-conducting-1.jpg
(Stored with Git LFS)
Normal file
BIN
src/assets/img/about/nathan-cummins-composer-orchestrator-conductor-general-1.png
(Stored with Git LFS)
Normal file
Before Width: | Height: | Size: 18 MiB After Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 100 MiB After Width: | Height: | Size: 134 B |
Before Width: | Height: | Size: 15 MiB After Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 30 MiB After Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 12 MiB After Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 29 MiB After Width: | Height: | Size: 133 B |
Before Width: | Height: | Size: 680 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 978 KiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 362 KiB After Width: | Height: | Size: 131 B |
BIN
src/assets/img/project-heros/nathan-cummins-hollow-knight-silksong-1.png
(Stored with Git LFS)
Normal file
Before Width: | Height: | Size: 536 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 879 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 375 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 449 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 5.1 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 231 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 509 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 130 B |
Before Width: | Height: | Size: 676 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 383 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 440 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 379 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 395 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 444 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 444 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 369 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 610 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 5.5 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 439 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 5.0 MiB After Width: | Height: | Size: 132 B |
Before Width: | Height: | Size: 501 KiB After Width: | Height: | Size: 131 B |
Before Width: | Height: | Size: 371 KiB After Width: | Height: | Size: 131 B |