Client project · 3D web + Windows app
RustPocket Rust+ on the desktop
A companion tool for the survival game Rust: live map, vending scan, raid calculator and smart base control as a Windows app. The website stages the product as an instrument panel, with a scroll camera flight and six procedural 3D instruments.
The design reference from the brief: the front panel of a Tektronix scope, not another SaaS landing page.
Two 3D strategies instead of one
Cinematics and interactivity need different things, so we gave each job the technique that fits instead of one hammer for everything.
Homepage
Pre-rendered camera flight
Six video legs fly from the desk scene across map, scan, base and bot to the finale. Scroll position drives video.currentTime directly.
- All-intra encoding: every frame is a keyframe, so the scrub reaches every frame
- Clips load as blobs, always seekable without range requests
- Dedicated 720p variants for mobile devices
- No WebGL on the homepage: the canvas bails out here by design
Interior pages
Procedural instruments
Six instruments built entirely from primitive Three.js geometry: terrain plate, scanner drum, scope trace, relay bank, beacon rotor and waveform horn.
- A single shared WebGL context in the root layout, every page scissor-renders into it
- The previous canvas-per-section approach kept losing contexts until the GPU process died. The lesson lives on as a code comment
- No post-processing: every glow is additively blended geometry
- Render tiers high/low/off: software renderers and reduced motion get no 3D at all instead of a broken one
The desktop app
Electron 43 with auto-updates, sold via Stripe as one flat subscription without tiers. You can download the installer only after the server has verified the checkout.
Feature scope
Everything that used to sit on a phone, a spreadsheet, a wiki tab and three Discord bots now fits on one screen.
-
Live map
Terrain, team positions, monuments, vending machines and events on a monitor instead of a five-inch phone screen.
-
Vending scan
Scan every machine on a server, watch stock, set price alerts.
-
Raid calculator
Explosive costs per wall and door, including an offline raid warning.
-
Smart base control
Control switches, alarms and storage monitors, with defensive and standby modes for every device at once.
-
Phone alerts
Telegram for free, SMS and voice calls via Twilio, so the app can call you before it is too late.
-
Team bot + Discord
Voice, text and in-game chat bot for the team, plus a Discord integration.
Tech stack
in detail
-
Next.js 16
App Router, React 19, zod validation, deployed on Vercel with Cloudflare DNS
-
React Three Fiber 9
Six procedural instruments built from primitive geometry, with no imported 3D models
-
Scrub engine (vanilla JS)
A custom 484-line engine: scroll position drives video.currentTime across six pre-rendered camera flights
-
Tailwind CSS v4
OKLCH color tokens sampled from the desktop app UI, 2px radius ceiling
-
Geist Mono
A single monospace face for UI and prose, matching the terminal character
-
Electron 43
Windows app with NSIS installer, auto-updates via electron-updater and a Discord bot integration
-
Stripe
Checkout, customer portal and webhooks. The server checks every download against the Stripe session
-
Ed25519 license system
Signed license responses with a nonce per request, which stops replay attacks and hosts-file spoofing
License security in detail
Ed25519 signatures
The server signs every license response, so a local proxy that answers ok gets nowhere.
Nonce per request
No response works twice, so replay attacks fail.
Idempotent keys
The server mints license keys idempotently after the Stripe checkout.
RustPocket is an independent companion tool and is not affiliated with Facepunch Studios. Rust and Rust+ are trademarks of their respective owners.