Make archive images openable in new tab
|
@ -11,7 +11,7 @@ extraAuthors: [{ name: "Sam Griffiths", url: "https://samgriffiths.dev" }]
|
|||
|
||||
import alongwaydown_demo_walkthrough from "alongwaydown-demo-walkthrough.webm";
|
||||
|
||||
A Long Way Down is a short, atmospheric linear adventure created alongside my friend [Sam](https://samgriffiths.dev) as a project for our FdA Games and Interactive Design degree. It is the follow up project to our previous work: [Nightmare](#nightmare), and was made to be an evolutionary improvement of it. Currently the [demo](https://samandtroy.itch.io/alongwaydown) is available to download and play on Itch.io.
|
||||
A Long Way Down is a short, atmospheric linear adventure created alongside my friend [Sam](https://samgriffiths.dev) as a project for our FdA Games and Interactive Design degree. My role was art direction including the lighting, level design, and majority of asset creation for the project. It is the follow up project to our previous work: [Nightmare](#nightmare), and was made to be an evolutionary improvement of it. Currently the [demo](https://samandtroy.itch.io/alongwaydown) is available to download and play on Itch.io.
|
||||
|
||||
<video preload="metadata" controls>
|
||||
<source src={alongwaydown_demo_walkthrough} type="video/webm" />
|
||||
|
|
|
@ -14,9 +14,7 @@ categories: ["education"]
|
|||
import deltakey from "deltakey.webm";
|
||||
import wallpaperpeel from "wallpaperpeel.webm";
|
||||
|
||||
The outcome I went into this project expecting was that I would produce an environment made entirely from scratch which I could create a short test virtual production shot in utilising a motion capture camera rig and live keying. Later I would then properly composite the two bits of footage together.
|
||||
|
||||
**This project is presented here in the state it was upon the university deadline. There were a couple issues that occurred towards the end of production which is why the project is listed as incomplete.**
|
||||
The outcome I went into this project expecting was that I would produce an environment made entirely from scratch which I could create a short test virtual production shot in utilising a motion capture camera rig and live keying. Later I would then properly composite the two bits of footage together. All of the elements of this goal are presented here but sadly due to a data corruption issue, they were not able to be presented in a combined state. **The project is presented in the state it was upon the university deadline and is listed as incomplete.**
|
||||
|
||||

|
||||
|
||||
|
|
|
@ -10,8 +10,6 @@ categories: ["client work"]
|
|||
|
||||
An ongoing collection of branding and logos designs. Including both 2D and 3D works created inside of various software packages.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Rebrand for [juce](https://www.twitch.tv/juceboi).
|
||||
|
|
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 9 KiB |
|
@ -9,11 +9,11 @@ categories: ["personal"]
|
|||
|
||||
import Gallery from "@components/Gallery.astro";
|
||||
|
||||
import image1 from "Still2025-04-07111623_1.1.1.avif";
|
||||
import image2 from "Still2025-04-07111623_1.1.6.avif";
|
||||
import image3 from "Still2025-04-07111623_1.1.4.avif";
|
||||
import image4 from "Still2025-04-07111623_1.1.2.avif";
|
||||
import image5 from "Still2025-04-07111623_1.1.3.avif";
|
||||
import image1 from "Still 2025-04-26 165037_1.1.1.jpg";
|
||||
import image2 from "Still 2025-04-26 165037_1.1.2.jpg";
|
||||
import image3 from "Still 2025-04-26 165037_1.1.3.jpg";
|
||||
import image4 from "Still 2025-04-26 165037_1.1.4.jpg";
|
||||
import image5 from "Still 2025-04-26 165037_1.1.6.jpg";
|
||||
import image6 from "ss_8340a3c02235371547350c557fefb830e6e2d067.avif";
|
||||
import image7 from "ss_c578870d1c22722983b76c3effe7fba7f5d1cb5e.avif";
|
||||
import image8 from "ss_b2dc5ca65e2f24088afac3faf79f450057e13383.avif";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: "University Dissertation"
|
||||
description: "A moody sacrifice scene taking place in a tomb created to test SSGI in Blender Eevee."
|
||||
description: "Recreation of the same two projects four years after original completion."
|
||||
date: 2025-01-10
|
||||
image: { url: "15.jpg", alt: "Tomb final" }
|
||||
tags: ["blender", "affinity photo", "affinity designer", "gimp"]
|
||||
|
@ -8,6 +8,8 @@ categories: ["personal"]
|
|||
featured: true
|
||||
---
|
||||
|
||||
import Gallery from "@components/Gallery.astro";
|
||||
|
||||
import tomb from "./tomb.jpg";
|
||||
import tomb_remake from "./15.jpg";
|
||||
import mango from "./ExportRender.jpg";
|
||||
|
@ -17,18 +19,22 @@ Tomb was originally posted on 14 Jul 2021, with Terry's Mango Juice on 10 Sept 2
|
|||
|
||||
Tomb was created as one of my first experiments utilising Blender's EEVEE real-time rendering engine on an environment. Whereas Terry's Mango Juice was made more to expand my work out into something other than environmental art.
|
||||
|
||||
More information regarding the thought process, research, and dissertation done alongside this project will be added after marks have been released.
|
||||
_More information regarding the thought process, research, and dissertation done alongside this project will be added after marks have been released._
|
||||
|
||||
## Tomb
|
||||
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<img class="mt-0 mb-0 h-full w-full object-cover" src={tomb.src} />
|
||||
<img class="mt-0 mb-0 h-full w-full object-cover" src={tomb_remake.src} />
|
||||
</div>
|
||||
<Gallery
|
||||
items={[
|
||||
{ src: tomb, alt: "Tomb" },
|
||||
{ src: tomb_remake, alt: "Tomb remake" },
|
||||
]}
|
||||
/>
|
||||
|
||||
## Terry's Mango Juice
|
||||
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<img class="mt-0 mb-0 h-full w-full object-cover" src={mango.src} />
|
||||
<img class="mt-0 mb-0 h-full w-full object-cover" src={mango_remake.src} />
|
||||
</div>
|
||||
<Gallery
|
||||
items={[
|
||||
{ src: mango, alt: "Terry's Mango Juice" },
|
||||
{ src: mango_remake, alt: "Terry's Mango Juice remake" },
|
||||
]}
|
||||
/>
|
||||
|
|
|
@ -1,85 +0,0 @@
|
|||
---
|
||||
import Layout from "@layouts/Layout.astro";
|
||||
import { SITE, ABOUT } from "@consts";
|
||||
import { Image } from "astro:assets";
|
||||
import { Icon } from "astro-icon/components";
|
||||
import Link from "@components/Link.astro";
|
||||
import icon from "public/assets/icon.png";
|
||||
import Button from "@components/Button.astro";
|
||||
---
|
||||
|
||||
<Layout title={SITE.TITLE} description={ABOUT.DESCRIPTION}>
|
||||
<div class="animate-reveal flex items-center justify-between opacity-0">
|
||||
<div class="flex-1 space-y-1.5">
|
||||
<h1
|
||||
class="animate-reveal flex flex-col text-start text-3xl font-semibold opacity-0 sm:block"
|
||||
>
|
||||
<span class="text-secondary text-nowrap">{SITE.AUTHOR}</span><span
|
||||
class="text-tertiary sm:ml-2">{ABOUT.DESCRIPTION}</span
|
||||
>
|
||||
</h1>
|
||||
<p class="text-secondary/70 max-w-md text-pretty">Digital designer.</p><p
|
||||
class="text-secondary/70 max-w-md items-center text-sm text-pretty"
|
||||
>
|
||||
<Link
|
||||
class="inline-flex gap-x-1.5 align-baseline leading-none hover:underline"
|
||||
href="https://www.google.com/maps/place/Devon"
|
||||
>
|
||||
<Icon name="mdi:earth" class="h-3 w-3" />
|
||||
Devon, United Kingdom, GMT
|
||||
</Link>
|
||||
</p><div class="text-secondary/70 flex gap-x-1 pt-1 text-sm print:hidden">
|
||||
<a
|
||||
href={`mailto:${SITE.EMAIL}`}
|
||||
class="bg-button text-secondary hover:bg-button-active flex w-fit flex-row items-center gap-1 justify-self-center rounded-full p-2 text-center text-sm text-nowrap capitalize transition-colors duration-300"
|
||||
>
|
||||
<Icon name="mdi:email" title="Email" class="h-4 w-4" />
|
||||
</a>
|
||||
<Link
|
||||
href="/"
|
||||
class="bg-button text-secondary hover:bg-button-active flex w-fit flex-row items-center gap-1 justify-self-center rounded-full p-2 text-center text-sm text-nowrap capitalize transition-colors duration-300"
|
||||
>
|
||||
<Icon name="mdi:link-variant" title="Website" class="h-4 w-4" />
|
||||
</Link>
|
||||
|
||||
<Link
|
||||
href="https://code.troylusty.com"
|
||||
class="bg-button text-secondary hover:bg-button-active flex w-fit flex-row items-center gap-1 justify-self-center rounded-full p-2 text-center text-sm text-nowrap capitalize transition-colors duration-300"
|
||||
>
|
||||
<Icon name="mdi:git" title="Git" class="h-4 w-4" />
|
||||
</Link>
|
||||
<Link
|
||||
href="https://store.steampowered.com/developer/troy"
|
||||
class="bg-button text-secondary hover:bg-button-active flex w-fit flex-row items-center gap-1 justify-self-center rounded-full p-2 text-center text-sm text-nowrap capitalize transition-colors duration-300"
|
||||
>
|
||||
<Icon name="mdi:steam" title="Steamworks" class="h-4 w-4" />
|
||||
</Link>
|
||||
</div>
|
||||
<p
|
||||
class="text-secondary/70 hidden max-w-md items-center text-sm text-pretty print:flex"
|
||||
>
|
||||
<Link
|
||||
class="inline-flex gap-x-1.5 align-baseline leading-none hover:underline"
|
||||
href={`mailto:${SITE.EMAIL}`}
|
||||
>
|
||||
<Icon name="mdi:email" class="h-3 w-3" />
|
||||
{SITE.EMAIL}
|
||||
</Link>
|
||||
</p>
|
||||
</div><span
|
||||
class="relative flex h-28 w-28 shrink-0 overflow-hidden rounded-xl"
|
||||
>
|
||||
<Image
|
||||
src={icon}
|
||||
alt="Troy Lusty"
|
||||
class="aspect-square h-full w-full"
|
||||
loading="eager"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="animate-reveal mx-auto max-w-full opacity-0 [animation-delay:0.2s]"
|
||||
>
|
||||
<Button href="/cv" link="CV" />
|
||||
</div>
|
||||
</Layout>
|
|
@ -26,15 +26,19 @@ const imageList = await Promise.all(
|
|||
class="text-tertiary ml-2">{ARCHIVE.DESCRIPTION}</span
|
||||
>
|
||||
</h1>
|
||||
<div class="animate-reveal grid grid-cols-2 md:grid-cols-3 gap-2 [animation-delay:0.1s]">
|
||||
<div
|
||||
class="animate-reveal grid grid-cols-2 gap-2 [animation-delay:0.1s] md:grid-cols-3"
|
||||
>
|
||||
{
|
||||
imageList.map((item) => (
|
||||
<Image
|
||||
src={item.image}
|
||||
alt={item.alt}
|
||||
loading="eager"
|
||||
class="aspect-square h-full w-full rounded-sm object-cover"
|
||||
/>
|
||||
<a href={item.image.src} target="_blank">
|
||||
<Image
|
||||
src={item.image}
|
||||
alt={item.alt}
|
||||
loading="eager"
|
||||
class="aspect-square h-full w-full cursor-zoom-in rounded-sm object-cover transition-all duration-300 ease-in-out hover:brightness-50"
|
||||
/>
|
||||
</a>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
|
|