THE ZANE DEEP WORLD ROADMAP

45 upgrades for the metaverse built by Zane Deep: what is live today, what brands can book, and what is coming next. Vote below on what gets built first.

LIVE NOW · 17PARTLY LIVE · 6BOOKING OPEN · 5PLANNED · 17

Core vision and foundation

PARTLY LIVE

01Spatial Jukebox (BandLab catalog)

Zane Deep songs already play across the island (drive into the glowing song circles) and on the radio inside every game. His full catalog is on BandLab. Next: a jukebox inside the world that browses the BandLab catalog.

Open it →

PLANNED

02Hi-Fi Master Vault (WAV downloads)

High-fidelity WAV downloads of Zane Deep masters for audiophiles and supporters.

LIVE NOW

03Live Holographic Concert Stage

A free hologram concert with Zane Deep's avatar and music runs every 30 minutes.

Open it →

PLANNED

04Membership tiers (Deep Citizen, Executive Producer)

Paid tiers with exclusive zones and perks. The free ZD PASS progression is live today.

PLANNED

05VIP Backstage Hotline

A direct line to Zane for top supporters. Until it opens, supporters can reach the team at ceo@zanedeepworld.com.

PARTLY LIVE

06Digital Asset Marketplace

World Looks (visual presets) and MX bike colours unlock with ZD Coins earned by playing. Paid skins and vehicle upgrades are planned.

Open it →

LIVE NOW

07Merch Store in the world

The 3D UFO flagship store with official Zane Deep merch, connected to the Shopify store.

Open it →

LIVE NOW

08Competitive Leaderboard Tournaments

A weekly MX tournament (fastest lap, resets every Monday) on top of the world leaderboards. Top 3 earn the WEEKLY TOP 3 badge; prizes are planned.

Open it →

PARTLY LIVE

09Creator Tip Jar

Support Zane with the $3.50 official sticker (comes with a gold SUPPORTER badge) and official merch. A direct tip button is planned.

Open it →

PLANNED

10Remix and Stems Studio

Official stems and a remix area inside the platform.

LIVE NOW

11Easter Egg Quests

The GOLD RECORD HUNT: 7 gold records hidden around the island, some on rooftops only the police helicopter can reach. Finding all 7 unlocks the VAULT GOLD look.

Open it →

BOOKING OPEN

12Virtual Billboard Sponsorship

In-world billboards for brands, creators and artists. An ADVERTISE HERE billboard already stands by the ring road.

Learn more →

PLANNED

13Listening Party Lounges

Private, time-limited rooms to preview unreleased music together.

BOOKING OPEN

14Developer Licensing Hub

Licensing of the custom browser 3D code, physics and visual effects behind ZANE DEEP WORLD.

Learn more →

LIVE NOW

15Cross-game portability

One ZD PASS across every game: XP, levels, badges, ZD Coins and World Looks carry into all games.

Open it →

Metaverse and creator-economy standards

LIVE NOW

16Battle Pass (Season 1)

A free Season 1 pass track with coins and World Looks unlocked by ZD PASS level, running to January 31, 2027.

Open it →

PLANNED

17Limited physical drops with NFC

Merch with NFC chips that unlock matching items in the game.

BOOKING OPEN

18Virtual Real Estate Rental

Storefronts and spaces on the island for brands and top fans.

Learn more →

LIVE NOW

19Affiliate and Referral Engine

INVITE FRIENDS in ZD PASS: every new player who joins from your link gives you 100 ZD Coins (and them 100 too), with RECRUITER and AMBASSADOR badges.

Open it →

LIVE NOW

20Daily Login Rewards

A daily chest on a 7-day cycle (day 7 gives 200 coins), a daily streak bonus and three new daily challenges.

Open it →

PARTLY LIVE

21Twitch and YouTube screens

The island cinema shows Zane Deep videos on the big screen. Live stream screens are planned.

Open it →

LIVE NOW

22Visual Preset Shop (World Looks)

Visual presets such as Neon Noir, Golden Hour, Police FLIR and Retro VHS, bought with ZD Coins, that change the look of every game.

Open it →

PLANNED

23Virtual Event Tickets

Tickets for launch parties, album releases and special shows in the world.

PARTLY LIVE

24Early Access Beta Passes

A free public beta of the new engine is open. Paid early-access passes are planned.

Open it →

LIVE NOW

25Community Voting

Players vote on what Zane builds next (one vote per day). See the vote below.

Open it →

PARTLY LIVE

26In-game Arcade Tokens

ZD Coins are earned in every game and spent on World Looks. High-stakes arcade games are planned.

Open it →

PLANNED

27Custom Soundpacks

Sound effects and loops for producers and video editors.

LIVE NOW

28Social Badges

Badges for following Zane Deep on Instagram, YouTube, TikTok, Facebook, Snapchat, BandLab and Spotify.

Open it →

PLANNED

29Virtual Meet-and-Greets

Scheduled hangouts with Zane inside the world.

BOOKING OPEN

30Native in-world ads

Native, non-intrusive branding in the environment.

Learn more →

Innovative and uncommon

LIVE NOW

31Audio-reactive city

CITY PULSE: the neon city on the island pulses to the beat of the Zane Deep song that is playing, analysed in the browser.

Open it →

PLANNED

32Executive Producer song credits

Top contributors credited in song metadata and game credits.

PLANNED

33Interactive 3D music videos

Songs as playable driving and flying experiences.

PLANNED

34Interactive Studio Simulation

Walk through a virtual recreation of Zane's studio.

LIVE NOW

35Live sync with Las Vegas

LAS VEGAS LIVE: the island shows real Las Vegas time and weather, and its rain and fog follow the real Las Vegas sky.

Open it →

LIVE NOW

36Radio Station

Zane Deep songs rotate continuously on the radio inside every game (NEXT SONG).

Open it →

PLANNED

37Sound-activated boosts

Boosts in the racing games timed to the beat of the track.

BOOKING OPEN

38Interactive Brand Takeovers

Temporary branded worlds for streetwear and extreme-sports labels.

Learn more →

LIVE NOW

39Ghost racing against the creator

Zane publishes his own best MX lap; everyone can race his gold ghost and earn the BEAT ZANE'S LAP badge.

Open it →

PLANNED

40In-world Streaming Booth

A spatial room where creators broadcast live from the world.

PLANNED

41Fan art banners

Fan art on designated walls, with moderation.

PLANNED

42Proximity voice chat

Distance-based voice chat with safety controls.

LIVE NOW

433D Photo Mode with instant export

Photo mode in the MX Championship (free orbit camera) and a 📸 PHOTO button on the island; save or share straight to social media.

Open it →

PLANNED

44Design-your-own merch

Customize merch designs in the browser.

LIVE NOW

45Browser performance showcase

ZANE DEEP WORLD runs real-time 3D games in any phone browser with adaptive quality. Studios and brands can hire the team.

Open it →

🗳️ VOTE: WHAT SHOULD ZANE BUILD NEXT?

One vote per day. Results update live.

Play the live features

🚁 HUNT GOLD RECORDS 🏍️ WEEKLY MX TOURNAMENT ❤️ SUPPORT ZANE

ZDEOF cat > support.html << 'ZDEOF' Support Zane Deep: Supporter Sticker, Merch and Perks | ZANE DEEP WORLD

SUPPORT ZANE DEEP

ZANE DEEP WORLD is free to play and built independently by Zane Deep. Here is how to back the project, and what supporters get.

LIVE NOW

🏅 The supporter sticker · $3.50

The official Zane Deep sticker. It comes with a gold SUPPORTER badge in ZD PASS and the PLATINUM SUPPORTER look for every game.

GET THE STICKER

LIVE NOW

🛸 Official merch

Walk into the 3D UFO flagship store on the island, or shop the list view.

ENTER THE UFO STORE LIST VIEW

LIVE NOW

❤️ Follow and share

Following earns social badges in ZD PASS. Invite friends from ZD PASS to earn ZD Coins.

Instagram · YouTube · TikTok · BandLab · Spotify · Apple Music

LIVE NOW

🗳️ Vote on what's next

Pick the next big feature on the roadmap.

VOTE

Coming for supporters

PLANNED

Membership tiers

Deep Citizen and Executive Producer tiers with exclusive zones and perks.

PLANNED

Hi-Fi Master Vault

WAV downloads of Zane Deep masters.

PLANNED

Stems and soundpacks

Official stems for remixes, plus sound effects and loops.

PLANNED

Executive Producer credits

Top contributors credited in song metadata and game credits.

PLANNED

Backstage line and meet-and-greets

A direct line to Zane and scheduled hangouts in the world. For now: ceo@zanedeepworld.com.

PLANNED

Listening parties and event tickets

Preview unreleased music together and attend release parties in the world.

ZDEOF cat > partners.html << 'ZDEOF' Advertise in ZANE DEEP WORLD: Billboards, Brand Takeovers, Licensing

ADVERTISE AND PARTNER WITH ZANE DEEP WORLD

A free, browser-based metaverse from Las Vegas producer Zane Deep: nine playable activities, live online motocross, hologram concerts and an island city players drive, walk and fly through. Brands can be part of the world, not an ad break.

EMAIL CEO@ZANEDEEPWORLD.COM

Ways to be in the world

BOOKING OPEN

In-world billboards

Billboards along the island's ring road, seen by players driving, riding and flying past, with MX stadium placements on request. The ADVERTISE HERE board is already standing.

BOOKING OPEN

Native environmental branding

Non-intrusive brand placements built into the city, stadium and games, never pop-up ads.

BOOKING OPEN

Virtual storefronts and spaces

Rent a storefront or a space on the island for a brand, label or product launch.

BOOKING OPEN

Brand takeovers

Temporary branded worlds and events for streetwear, music and extreme-sports labels, including a sponsored MX round.

BOOKING OPEN

Code and effects licensing

License the browser 3D code, vehicle and motorcycle physics, and visual effects behind ZANE DEEP WORLD.

BOOKING OPEN

Build with the studio

Hire the team to build real-time 3D web experiences that run on any phone, with no app.

Built for every browser

EngineReal-time WebGL 3D (Three.js) in the browser: no download, no app store, no account.
Phones firstAdaptive quality lowers shadows, resolution and effects automatically when the frame rate drops, so games stay smooth on older phones and slower browsers.
Live multiplayerPeer-to-peer WebRTC racing for up to 8 riders with host hand-over, plus global leaderboards and weekly tournaments.
PhysicsCustom motorcycle, car, helicopter, snowboard, wingsuit and boxing physics.
ContentNine playable activities, a 3D UFO store, hologram concerts, a cinema and a police helicopter you can fly over the whole island.
ShareableVertical Instagram Reel clips and photo mode exported straight from the game.

Start a conversation

Tell us your brand, what you would like players to see or do, and your dates. ceo@zanedeepworld.com

ZDEOF cat > api/mx.js << 'ZDEOF' // ZANE DEEP WORLD MX Championship leaderboards, weekly tournaments, Zane's creator ghost, community votes and friend invites. // Vercel serverless function: GET/POST /api/mx (a=vote | a=ref | a=refs | a=ghost select the extra features) // Storage: a free Upstash Redis database connected to the Vercel project (Vercel dashboard > Storage > Upstash / Redis > Connect). // It reads KV_REST_API_URL + KV_REST_API_TOKEN (or UPSTASH_REDIS_REST_URL + UPSTASH_REDIS_REST_TOKEN). No keys live in this file. // Without a database the game still works and shows the leaderboard saved on the phone. const URL_ = process.env.KV_REST_API_URL || process.env.UPSTASH_REDIS_REST_URL; const TOK = process.env.KV_REST_API_TOKEN || process.env.UPSTASH_REDIS_REST_TOKEN; const SEASON = 's1'; async function redis(cmds) { const r = await fetch(URL_ + '/pipeline', { method: 'POST', headers: { Authorization: 'Bearer ' + TOK, 'Content-Type': 'application/json' }, body: JSON.stringify(cmds) }); if (!r.ok) throw new Error('redis ' + r.status); return (await r.json()).map(x => x.result); } const clean = s => String(s || '').toUpperCase().replace(/[^A-Z0-9 .'\-]/g, '').trim().slice(0, 14) || 'RIDER'; const WEEK = () => Math.floor((Date.now() / 864e5 + 3) / 7); /* tournament weeks run Monday to Sunday (UTC) */ const VOTE_IDS = ['studio', 'mv', 'stems', 'vault', 'party', 'voice', 'membership', 'beatboost', 'merchai', 'stream']; const ip = req => String((req.headers && (req.headers['x-forwarded-for'] || req.headers['x-real-ip'])) || 'x').split(',')[0].trim().slice(0, 64); const pairs = a => { const o = []; for (let i = 0; i + 1 < (a || []).length; i += 2) o.push([a[i], +a[i + 1]]); return o; }; module.exports = async (req, res) => { res.setHeader('Cache-Control', 'no-store'); if (!URL_ || !TOK) return res.status(200).json({ ok: false, offline: true }); try { const trk = (req.method === 'GET' ? parseInt((req.query && req.query.track) || '1', 10) : parseInt(((typeof req.body === 'object' && req.body) || {}).track || '1', 10)) === 2 ? 2 : 1; const q = req.query || {}; let b = req.body; if (typeof b === 'string') { try { b = JSON.parse(b); } catch (e) { b = {}; } } b = b || {}; const act = String((req.method === 'GET' ? q.a : b.a) || ''); /* ---- community vote: what should Zane build next? one vote per network per day ---- */ if (act === 'vote') { if (req.method === 'POST') { const id = String(b.id || ''); if (VOTE_IDS.indexOf(id) < 0) return res.status(200).json({ ok: false }); const [fresh] = await redis([['SET', 'vote:ip:' + ip(req), '1', 'NX', 'EX', '86400']]); if (fresh) await redis([['HINCRBY', 'vote:s1', id, '1']]); const [all] = await redis([['HGETALL', 'vote:s1']]); return res.status(200).json({ ok: true, counted: !!fresh, votes: pairs(all) }); } const [all] = await redis([['HGETALL', 'vote:s1']]); return res.status(200).json({ ok: true, votes: pairs(all) }); } /* ---- friend invites: a new player who arrives on someone's link counts once ---- */ if (act === 'ref' && req.method === 'POST') { const code = String(b.code || '').toUpperCase(); if (!/^[A-Z0-9]{6}$/.test(code)) return res.status(200).json({ ok: false }); const [fresh] = await redis([['SET', 'ref:ip:' + ip(req), '1', 'NX', 'EX', '2592000']]); if (fresh) await redis([['HINCRBY', 'ref:s1', code, '1']]); return res.status(200).json({ ok: true, counted: !!fresh }); } if (act === 'refs') { const code = String(q.code || '').toUpperCase(); if (!/^[A-Z0-9]{6}$/.test(code)) return res.status(200).json({ ok: false }); const [n] = await redis([['HGET', 'ref:s1', code]]); return res.status(200).json({ ok: true, n: parseInt(n || '0', 10) }); } /* ---- Zane's creator ghost: Zane publishes his own best lap (protected by ZD_ADMIN_KEY), everyone can race it ---- */ if (act === 'ghost') { const tk = (req.method === 'GET' ? parseInt(q.track || '1', 10) : parseInt(b.track || '1', 10)) === 2 ? 2 : 1, gk = 'mx:creator:ghost:t' + tk; if (req.method === 'GET') { const [g] = await redis([['GET', gk]]); res.setHeader('Cache-Control', 'public, max-age=60'); return res.status(200).json({ ok: true, ghost: g ? JSON.parse(g) : null }); } const key = process.env.ZD_ADMIN_KEY; if (!key || String(b.key || '') !== key) return res.status(200).json({ ok: false, error: 'key' }); const t = +b.t, f = b.f; if (!(t >= 18 && t < 600) || !Array.isArray(f) || f.length < 60 || f.length > 20000) return res.status(200).json({ ok: false, error: 'lap' }); const g = { t, name: clean(b.name || 'ZANE DEEP'), num: 77, at: Date.now(), f: f.map(r => (Array.isArray(r) ? r.slice(0, 8).map(v => Math.round((+v || 0) * 1000) / 1000) : [])) }; await redis([['SET', gk, JSON.stringify(g)]]); return res.status(200).json({ ok: true, t }); } const WK = 'mx:wk:' + WEEK() + ':lap' + (trk === 2 ? ':t2' : ''); const K = { lap: 'mx:' + SEASON + ':lap' + (trk === 2 ? ':t2' : ''), pts: 'mx:' + SEASON + ':pts', win: 'mx:' + SEASON + ':win', who: 'mx:' + SEASON + ':who' }; if (req.method === 'GET') { const [lap, pts, win, wk] = await redis([['ZRANGE', K.lap, '0', '19', 'WITHSCORES'], ['ZRANGE', K.pts, '0', '19', 'REV', 'WITHSCORES'], ['ZRANGE', K.win, '0', '19', 'REV', 'WITHSCORES'], ['ZRANGE', WK, '0', '9', 'WITHSCORES']]); const ids = [...new Set([...pairs(lap), ...pairs(pts), ...pairs(win), ...pairs(wk)].map(p => p[0]))]; const who = ids.length ? await redis([['HMGET', K.who, ...ids]]) : [[]]; const info = {}; ids.forEach((id, i) => { try { info[id] = JSON.parse(who[0][i] || '{}'); } catch (e) { info[id] = {}; } }); const fmt = a => pairs(a).map(([id, v]) => Object.assign({ id, v }, info[id])); const ends = (WEEK() + 1) * 7 * 864e5 - 3 * 864e5; return res.status(200).json({ ok: true, season: SEASON, lap: fmt(lap), pts: fmt(pts), win: fmt(win), week: fmt(wk), weekEnds: ends }); } if (req.method === 'POST') { const name = clean(b.name), num = Math.max(0, Math.min(99, parseInt(b.num, 10) || 0)), color = Math.max(0, Math.min(0xffffff, parseInt(b.color, 10) || 0)); const id = name + '#' + num, cmds = [['HSET', K.who, id, JSON.stringify({ name, num, color })]]; const lap = +b.lap; if (isFinite(lap) && lap >= 18 && lap < 600) cmds.push(['ZADD', K.lap, 'LT', lap.toFixed(3), id], ['ZADD', WK, 'LT', lap.toFixed(3), id], ['EXPIRE', WK, '3456000']); const pts = parseInt(b.pts, 10); if (b.mode === 'online' && pts > 0 && pts <= 25) cmds.push(['ZINCRBY', K.pts, String(pts), id]); if (b.mode === 'online' && b.win === 1 && (parseInt(b.humans, 10) || 0) >= 2) cmds.push(['ZINCRBY', K.win, '1', id]); await redis(cmds); return res.status(200).json({ ok: true }); } return res.status(405).json({ ok: false }); } catch (e) { return res.status(200).json({ ok: false, error: 'storage' }); } };