← rgbjoy.com

rgbjoy — Tom Fletcher

rgbjoy is the online identity and portfolio of Tom Fletcher.

Tom Fletcher is a full-stack engineer and creative developer who designs and builds for the web, from client sites and product systems to shader experiments. Available for new work.

Projects

scriptlet.app

A native Mac app for running, watching, and stopping package.json scripts while coding agents work.

2026 · Swift

futurebyday.com

An interactive savings calculator for exploring how daily contributions could grow over time, comparing risk levels, and planning toward a savings goal.

2026 · vinext, StyleX

golfisweird.com

Something weird for golf, in the works. All it takes is one good look.

2026 · vinext, Three.js

tenniswoodsmiles.com

A patient-focused site for a multigenerational dental practice, built with Payload CMS and Next.js.

2026 · Next.js, Payload CMS

veronightout.com

A curated guide to the best bars, restaurants, and local hangouts in Vero Beach, with clear vibes for every spot.

2026 · Next.js, PayloadCMS

valeriechiang.com

A portfolio site for a New York City photographer and filmmaker, built with Payload CMS.

2025 · Next.js, PayloadCMS

thenewrepublic.com

Reader-facing features and custom editorial CMS tooling for the magazine, built and shipped front to back.

Ongoing · React

oib.beer

No description has been published for this project.

2025 · Next.js, PayloadCMS

checkcheck.app

A minimalist checklist app that lets you easily create tasks, sort, and use keyboard shortcuts.

2026 · Next.js, PayloadCMS

Experiments

Phosphor

Soft blocks of colour, crisp in one place and smeared in the next, ghosted like a video starved of bitrate and seen through a CRT's slot mask. Click for a new frame, R to roll the dice on every setting, S to save it at 4K.

Generative & Visual · wip · Three.js, R3F, GLSL, lil-gui

Global Illumination

A concrete box in the sky: sun shafts through one window, lit a second time by its own bounce light — one blue-noise ray a pixel, averaged frame over frame until the grain settles. Orbit in and out through the walls.

3D & Spatial · wip · Three.js, R3F, GLSL, lil-gui

Hand

A sculpted hand in grainy black and white, fingers rolling in a seamless loop. Bring the cursor into its grasp and the hand catches it.

3D & Spatial · wip · Three.js, R3F, GLSL, glTF

Endless Scroll

An endless vertical list of names — fast, smooth scrolling and paired background and preview colors that crossfade on hover.

Generative & Visual · live · React, CSS, Lenis

Ghost

A quietly waiting sheet ghost — simulated cloth, wandering idle motion, and a gaze that notices you in the dark.

3D & Spatial · live · Three.js, R3F, GLSL

Decal Pole

Staple images to a telephone pole — drop one anywhere and it sticks where it lands, a few degrees off true.

Play · live · Three.js, R3F, drei

Island Generator

Shape a low-poly island with seeded noise, elevation bands, and live terrain controls.

Play · wip · Three.js, R3F, WebGL

Frosted Glass

Capsules and beads pile up against a pane — depth is spent as blur, so the far ones smear into the fog.

Glass & Refraction · live · Three.js, R3F, GLSL, box3d.js, lil-gui

Frog Ace

Read the wind, pull back, and spring a tiny frog across a branching lily-pad course.

Play · wip · Three.js, R3F, GLSL, FBX

Aurora

Raymarched aurora curtains after kishimisu — spectral ribbons that drift and fold in deep space, pulsing to a generated beat.

Generative & Visual · live · Three.js, R3F, GLSL, Web Audio, lil-gui

Gradient Flow

Living gradients that cross-fade curated palettes, blended in OKLab for natural color.

Generative & Visual · live · Three.js, R3F, GLSL, thi.ng, lil-gui

Fluted Glass

A pane of segmented log-compression flutes over the left half of a soft drifting wash. The cursor sits behind the glass.

Glass & Refraction · live · Three.js, R3F, GLSL

Glass Cross

A vertical glass line warping thin black wavy lines on white.

Glass & Refraction · live · Three.js, R3F, GLSL

Glass Lines

Refracted line-field glass lighting. The lines bend away from the pointer and spring back.

Glass & Refraction · live · Three.js, R3F, GLSL

Glass Point

A 5×3 grid of point lenses refracting a flowing cosine wash background. They shy away from the pointer and spring back.

Glass & Refraction · live · Three.js, R3F, GLSL

Glass Waves

Straight vertical glass lines refracting a gold cosine palette. The strips under the pointer grow wider.

Glass & Refraction · live · Three.js, R3F, GLSL

Reading Glass

A fixed strip of bent glass near the top refracts the article text with chromatic aberration as you scroll.

Glass & Refraction · live · Three.js, R3F, GLSL

PS2 Intro

Concrete column field, refracting glass cubes, and whirling colored light trails over base fog.

3D & Spatial · live · Three.js, R3F, GLSL, Postprocessing

Unbreaking Waves

Five orbiting petal blobs with palette flow and soft fog wash.

Generative & Visual · live · Three.js, R3F, GLSL, lil-gui

Warped Stripes

Noise-warped diagonal stripes with live-tweakable colors and warp.

Generative & Visual · live · Three.js, R3F, GLSL, lil-gui

Palm Leaf

Tropical light filtering through large fronds.

3D & Spatial · live · Three.js, R3F

Rectangle Farm

Rotating physical blocks in a neat field layout.

3D & Spatial · live · Three.js, R3F

Sky Atmosphere

Procedural sky gradients and atmospheric depth.

Generative & Visual · live · Three.js, R3F, GLSL, lil-gui

Black Ink

A slow monochrome ink wash shaped by layered noise.

Generative & Visual · live · Three.js, R3F, GLSL

Wormhole

Shader tunnel with a deep-space motion feel.

Generative & Visual · live · Three.js, R3F, GLSL

Elsewhere