Skip to content

About

Interactive diagrams and workshop artifacts embedded by the RaidGuild Portal

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RaidGuild Portal Artifacts

Static, interactive artifacts embedded by the RaidGuild Portal.

Adding an artifact

Create a stable directory beneath public with an index.html file:

public/
  artifact-slug/
    index.html
    artifact-social-v1.png

After a change is merged to main, Railway deploys it at:

https://<artifact-domain>/artifact-slug/

Published paths are durable. Do not rename or remove them. Use a versioned path when an existing article must retain the original artifact.

Include a link unfurl

Every new artifact must include a cover image and static link-preview metadata so sharing its URL produces a useful unfurl. Include this work in the artifact's PR, alongside its editable source and published build.

Create a cover that matches the artifact's visual style and remains readable at thumbnail size. Use image generation for illustrated cover art, or a deliberately composed screenshot when that represents the artifact better. Aim for a wide image around 1.91:1 (for example, 1200 × 630), leave crop-safe margins, and keep the file reasonably small. Use PNG or JPEG. For generated artwork, preserve the tool name and exact prompt in the study's art/ directory, and identify concept art as such rather than describing it as a gameplay screenshot.

Save the image in the artifact's published directory. For build-based studies, also keep it in the source public-assets directory so rebuilding preserves it. Use a versioned filename such as artifact-social-v1.png; update the metadata when replacing it with a new version.

Put the following tags in the initial HTML <head>, not in client-side JavaScript. Replace the example slug, title, description, image name, dimensions, and alt text with the artifact's actual values. Canonical, og:url, and image URLs must be absolute production URLs, never localhost or filesystem paths.

<title>Artifact title</title>
<meta name="description" content="A short description of the experience.">
<link rel="canonical" href="https://portal-artifacts-production.up.railway.app/artifact-slug/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="RaidGuild Artifacts">
<meta property="og:title" content="Artifact title">
<meta property="og:description" content="A short description of the experience.">
<meta property="og:url" content="https://portal-artifacts-production.up.railway.app/artifact-slug/">
<meta property="og:image" content="https://portal-artifacts-production.up.railway.app/artifact-slug/artifact-social-v1.png">
<meta property="og:image:type" content="image/png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Describe the cover's subject and scene.">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Artifact title">
<meta name="twitter:description" content="A short description of the experience.">
<meta name="twitter:image" content="https://portal-artifacts-production.up.railway.app/artifact-slug/artifact-social-v1.png">
<meta name="twitter:image:alt" content="Describe the cover's subject and scene.">

Before opening the PR, inspect the cover and verify that the built HTML contains these tags, the image is included in the published output, and its format and dimensions match the metadata. Commit both source and rebuilt output. After deployment, check that the public page and image URLs load without authentication and inspect a shared-link preview; existing previews may remain cached.

See Puddle's source HTML and image-generation record for a complete example.

Security boundary

Artifacts run on a separate origin from Portal and must be embedded in a sandboxed iframe. They must not contain Portal credentials, depend on Portal cookies, or call private Portal APIs.

The service applies a restrictive Content Security Policy. Inline JavaScript and styles are permitted for self-contained workshop exports. The only external script origin currently permitted is cdnjs.cloudflare.com; prefer checked-in dependencies for durable published work. Same-origin WebAssembly compilation is allowed (wasm-unsafe-eval) so checked-in engines such as Havok can start.

Local preview

docker build -t portal-artifacts .
docker run --rm -p 8080:8080 -e PORT=8080 portal-artifacts

Open http://localhost:8080.

Puddle — Six Tower Gardens

public/puddle-study/ is a six-level game at /puddle-study/. Guide a living particle puddle down a floating tower, gather flesh, collect gold and gems, cast tendrils, shed weight onto switches, and navigate low gaps and gripping or slippery surfaces. The start screen offers level selection, local progress, the Level Workshop with playable saved levels, and the Soft Signal music study. The editor supports raised terraces, ramps, paintable surfaces, basins, and solid cutters. Recent work keeps the growing blob fluid while reducing costly collision searches and moving surface generation off the render thread. Editable source, tests, build instructions, and bundled dependency licenses are in studies/puddle-study/.

Housefly study

public/housefly-study/ contains a standalone Three.js housefly flight study at /housefly-study/. Editable source, simulation tests, local fonts, bundled dependency licenses, and rebuild instructions are in studies/housefly-study/.

Portal motion study

public/portal-motion/ contains the built portal animation. Editable source is in studies/portal-motion/. To rebuild with Node 22.13 or newer:

cd studies/portal-motion
npm ci
npm run build:railway
cp -R dist-railway/. ../../public/portal-motion/

Sirocco oasis study

Editable Three.js source and the Blender asset library are in studies/sirocco-oasis/; the published build is in public/sirocco-oasis/. See the study README for rebuild instructions. All runtime assets are served from this origin under the existing Content Security Policy.

Jelly Garden study

public/jelly-garden/ contains the published Three.js soft-body playground: a bendable RaidGuild mark and three garden creatures with translucent surfaces, weighted landings, orbitable camera, and an optional Keep them up challenge. Editable source, physics and round tests, local fonts, and subpath rebuild instructions are in studies/jelly-garden/.

FIELD spatial horror study

public/field/ is the standalone FIELD demo. Editable Blender assets, scripts and regression checks are in studies/field/; its dist symlink points to the published source. See the study README for controls and local development.

Lunar Republic game

public/lunar-republic/ contains the standalone Three.js lunar catapult game. Editable Blender assets and campaign tests are in studies/lunar-republic/, whose dist symlink points to the canonical public source. See its README for local play, tests, and asset regeneration.

Cosmic Carnival game

public/cosmic-carnival/ contains the production build of the pastel alien lane shooter. Editable Three.js/TypeScript source, focused simulation tests, the supplied GLB models, and build instructions are in studies/cosmic-carnival/.

RaidGuild: The Last Mile

public/rg-tlm-game/ contains the pinned production build of the four-chapter point-and-click adventure. The canonical editable source remains in raid-guild/rg-tlm-game; build provenance and the reproducible subpath build command are recorded in studies/rg-tlm-game/README.md.

Brewers Rendezvous

public/brewers-rendezvous/ contains One Taster in Salida, an interactive miniature of Riverside Park with animal hosts, six tasting booths, local-history conversations and user-started looping music. Editable Blender assets, source notes and interaction tests are in studies/brewers-rendezvous/; its dist symlink points to the canonical public source. See the study README for controls and local preview instructions. No build step or external runtime services are required.

Ragdoll Lab

public/ragdoll-lab/ is the buildless Three.js ragdoll study, including the FIELD Goatman rig, a long-slide bowling scene, and the original drop/stairs experiments. Tests, editable Blender source, and regeneration instructions live in studies/ragdoll-lab/; its dist symlink points to the canonical public source.

Powder study

public/powder-study/ is a standalone Three.js falling-sand study with reactive materials and branching plant growth. The studies/powder-study/dist symlink points to the canonical published source; its README covers local preview, controls, source provenance, and simulation tests.

Published artifacts

  • housefly-study/ — A procedural housefly flies through a 3D volume over a scrollable page, with adjustable depth, turns, speed, cursor response, and draggable attraction spots.

  • puddle-study/ — Six floating garden levels, collectible gems and gold, tendrils, shedding and grip puzzles, local level editing and play, plus Soft Signal background music.

  • powder-study/ — Interactive particle world with paintable sand, water, fire, acid, seeds, and four experiment presets.

  • jelly-garden/ — A squishy RaidGuild mark and three jelly creatures with liquid-like ripples, weighted landings, draggable camera, physics controls, and an optional Keep them up challenge.

  • ragdoll-lab/ — Ragdoll bowling with a long slide, ten targets, draggable characters, adjustable grip, and a rigged Goatman/Mannequin comparison.

  • raidguild-launch-film/ — Prepared, 85-second RaidGuild website launch film player with native video controls, chapter navigation, and optional lyric captions. Its stable same-origin media path is ./media/film.mp4; production routing through the existing S3-backed render-outputs proxy still needs deployment verification. The MP4 is intentionally not checked into this repository.

  • brewers-rendezvous/ — A personal, playable recap of the 2026 Colorado Brewers Rendezvous, with a miniature park, animal characters, tasting journal and riverside synth music.

  • raidguild-radio/ — Ambient desert-walker cockpit with a looping six-song playlist, crossfades, weather, and day/night controls. Opens at night; click Start listening to enable audio. All media is served locally.

  • rg-tlm-game/ — RaidGuild: The Last Mile, a four-chapter point-and-click adventure through a desert waystation, transit crossing, shared Workshop, and Cypherpunk Archive signal room.

  • jev-maze/ — Live Jev maze and semantic-navigation experiment, with visitor-owned keys and three algorithmic baselines.

  • jev-memory-lab/ — Offline JEV classification demo: all 85 recorded memory candidates stream through an 18-second batch visualizer, with accumulating classifications, abstentions, and ownership relationships. No live key or API calls. See studies/jev-memory-lab/README.md.

  • cosmic-carnival/ — Twelve-lane arcade shooter using the supplied Crescent, Prism, Ribbon, and Jester models, with deterministic waves and a psychedelic title reveal.

  • raid-credits/ — Public, unauthenticated rework of the 2020 Raid Credits audiovisual showcase, with a complete static Portal member roster and explicitly inactive historical Rainbow Warrior NFT context.

  • lunar-republic/ — Toon-shaded lunar revolution game with freight, allied cities, resource upgrades, enemy operations, and persistent district destruction.

  • field/ — CAD tutorial that descends into a procedural office maze, with spatial changes, wall music and fleeting seated shadows.

  • sirocco-oasis/ — Stylized interactive desert vista with reflective rippleable water, a traveling airship, wind-driven palms, dust, and optional ambient audio.

  • portal-motion/ — Interactive spark portal with palette mixing, size controls, and a blurred mountain destination that reveals on hover.

  • desert-walker/ — Interactive Three.js vignette featuring a textured dieselpunk survey walker in a procedural desert, with orbit controls and optional ambient motion.

  • bd-thread-journeys/ — RaidGuild BD thread journeys across phases. This is a concept demonstration; its middle-phase crossings are explicitly marked as synthetic in the artifact.

  • veydrift-alliance-map/ — Live, read-only tactical map for Veydrift alliance 29 (RaidGuild), with a clearly labeled fixture fallback. Its CSS/SVG planet visuals are placeholders; no Veydrift artwork is included. Other public alliances can be loaded with the in-map ID switcher or the shareable ?alliance=<id> query parameter.

  • veydrift-mission-explorer/ — Live, read-only explorer for public Veydrift missions, including flight path, fleet, cargo, combat results, and contextual links to the alliance map. Deep links use /mission/<id> beneath this path.

  • module-gallery-study/ — Switchable editorial and restrained Three.js module gallery with responsive, keyboard-accessible detail views.

  • web-presence-map/ — Interactive RaidGuild constellation showing the public front door, community world, Portal capabilities, knowledge routes, and outward-facing specialist offerings.

Veydrift read proxy

The service exposes a narrow, read-only subset of the public Veydrift API below /veydrift-api/. Only explicitly allowlisted GET and HEAD routes are forwarded. Keep this allowlist limited to routes consumed by the artifact; do not turn it into a general API proxy or forward browser credentials.

Jev maze experiment

public/jev-maze/ is the separate, publishable navigation experiment at /jev-maze/. It compares Jev with fixed, random, and keyword DFS, with maze editing, symbol learning, and semantic room descriptions. Visitors bring their own TypeSafe API keys, held only in tab memory. Live inference uses the narrow POST /jev-api/systemone proxy; no server API key is deployed.

Editable source and local Node-server support remain in studies/jev-maze/. Rebuild the artifact with cd studies/jev-maze && npm run build:artifact. The existing Caddy/Railway deployment serves the built artifact after merge to main. The local .env is Git-ignored and outside the Docker build's copied assets.

Raid Survivor game

public/raid-survivor/ is the published build. Editable source, art provenance, game and music tests, and build instructions are in studies/raid-survivor/. The game works as a guest with local scores; Portal launch enables ranked runs.

Optional game leaderboards

services/leaderboards/ deploys independently beside the shared game Postgres. Cosmic Carnival and Raid Survivor remain playable without it; Portal signed launch enables ranked submissions. See setup, API, tests, and rollback. Set LEADERBOARD_UPSTREAM on this static service to proxy its narrowly scoped API.

About

Interactive diagrams and workshop artifacts embedded by the RaidGuild Portal

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages