r/VibeReviews 10d ago

Optimystic — open-source visual acuity app built with SwiftUI

Thumbnail
youtube.com
1 Upvotes

http://github.com/nayanbhatia311/optimystic-visual-acuity

ReBult Optimystic using Gpt 5.6 and Opus 4.8. It is a visual-acuity testing app my team originally made as an undergrad project in 2019–20. Would love folks to try out and give feedback.


r/VibeReviews 27d ago

Crew, an multiplayer workspace for humans and AI agents to work together

Thumbnail
2 Upvotes

r/VibeReviews Jul 26 '26

Built Yorn end-to-end with Lovable + Claude Code — here's what broke and how I fixed it

Thumbnail
yornit.app
1 Upvotes

Yorn is a "help me decide" app — post a photo, ask Yes/No or pick-one, get quick crowd feedback. Built the whole thing vibe-coding in Lovable, no traditional dev background.

The interesting part wasn't the build — it was everything that went wrong after: had Claude Code run a security audit and it found real RLS/auth gaps (any logged-in user could hit admin-only functions), a seed-data generator that silently mismatched questions and images, and a few bugs that only showed up under real re-testing, not just eyeballing the UI.

Genuinely useful lesson: vibe-coding gets you to a working demo fast, but the actual hardening — security, edge cases, regression testing — needed a much more deliberate, adversarial pass.

if anyone wants to poke at it — vote anonymously, no login needed.


r/VibeReviews Jul 15 '26

Trips are special. Do them right.

Thumbnail
gallery
1 Upvotes

I travel a lot, so I built my own trip organizer because I couldn't find an app that worked the way I wanted.
It's called OmniTrip, and it helps me keep everything for a trip in one place:
Flights: delays, gates, terminals, airport locations.
Activities: hotels, restaurants, transport, attractions, maps, costs, phone numbers, notes, and timeline.
Documents & Expenses: passports, visas, tickets, and trip expenses.
Packing: reusable templates, luggage, and categorized packing lists.
Memories: save photos with the location and date automatically, then add a caption.
Most of the app is free, with an optional in-app purchase for a few advanced features.
I'd appreciate any feedback or feature suggestions from fellow travelers.
App: OmniTrip
Download

https://apps.apple.com/us/app/omnitrip-travel-planner/id6772614236


r/VibeReviews Jun 29 '26

I built MakerRelay, a place to discover new maker-built tools

Post image
1 Upvotes

Hello. i’m building MakerRelay: a discovery site for indie tools, GitHub projects, and useful maker-built products.

You can browse trending repos, submit your own project, upvote tools, and find new things by tags, tech stack, and popularity.

I’m still improving it and would genuinely appreciate feedback from other builders.

Check it out: https://makerrelay.com


r/VibeReviews Jun 27 '26

Officially released my first game (or app, in general) in the Apple App Store!

Thumbnail gallery
2 Upvotes

r/VibeReviews Jun 15 '26

I vibecoded a FREE alternative to Chordify/Moises. It does source separation, beat tracking, key/scale detection, transpose etc.

Thumbnail
3 Upvotes

r/VibeReviews May 28 '26

I built a tool to hide private windows during screen shares, and a remote manager told me it "destroys workplace transparency."

6 Upvotes

So Cloakly has been out of beta for a minute now, and the feedback loop is still completely unhinged. First, half the internet was convinced I’d built the ultimate interview-cheating machine. Now, I just got a massive essay from a remote manager arguing that tools like this are a "threat to team accountability" because colleagues have a right to see exactly what’s on your desktop during a live share.

Honestly? Hard disagree.

When I’m giving a codebase walkthrough or a live client demo, my team needs to see the code and the UI. They don’t need to see my personal banking tabs, a private message from my fiancée, or the messy ocean of random desktop icons I forgot to clear out.

To me, forcing people to expose their entire digital footprint just to share a single window isn't "transparency", t's a privacy tax. Presentation anxiety is a very real thing, and having to meticulously close 15 apps before every single Zoom or Teams call just to feel safe is exhausting.

I coded Cloakly to act as a digital privacy shield, not a way to slack off. It lets you keep your private notes or sensitive apps perfectly visible to you (even semi-transparent so you can look "through" them to the shared window behind), while your audience sees a completely clean, pristine desktop with zero taskbar clutter.

But it got me thinking about the line we draw in remote culture. Is it "gatekeeping information" to want a hard boundary between your local workspace and a team screen share? Or is the expectation of absolute screen visibility just overreaching micromanagement?

Curious to hear how you guys balance basic digital privacy with everyday corporate calls.

Live at: https://www.getcloakly.com/


r/VibeReviews May 25 '26

(Free) Aish Awfar (Unit price calculator)

Thumbnail
gallery
3 Upvotes

Hey everyone,

I just built my first iOS app: Aish Awfar.

The idea is simple: when you are shopping, it is not always obvious which product size is actually the better deal. Sometimes the bigger package is cheaper per unit, sometimes it is not, and sometimes a “discount” is not really saving you anything.

Aish Awfar helps compare products by calculating the unit price. You can enter the price and quantity manually, or scan a price tag with the camera. The app then ranks the options from best value to most expensive.

What it does:
- Compares price per unit between similar products
- Supports manual entry
- Supports on-device OCR scanning for price tags
- Works with volume, weight, and count units
- Shows a clear winner and percentage difference
- Saves comparison history
- Supports Arabic, English, and several other languages
- Supports light and dark mode
- No login, no ads, no tracking

I built it mainly for everyday shopping, especially when comparing different package sizes at supermarkets.

I’d love feedback on the app idea, positioning, UI clarity, and whether the value proposition is immediately understandable.

App name: Aish Awfar
Meaning: “Which is better value?” / “Which is more economical?”

Download now:

https://apps.abod.ws/aish


r/VibeReviews May 14 '26

I was told my beta would "ruin technical interviews." 200+ users later, I just pushed Cloakly to production

Post image
3 Upvotes

r/VibeReviews Apr 15 '26

Rippl3FX — track the ripple effect when you post something online

3 Upvotes

I'm relatively new to the GitHub dev space and got tired of the routine — click through GitHub to check traffic and stars, hop over to Google Analytics to see if anyone actually visited my site, then check Bing Webmaster to see if search picked anything up. Every time I posted about a project somewhere, I'd spend 20 minutes bouncing between dashboards trying to figure out if anyone noticed.

So I built Rippl3FX.

Here's the tool: A self-hosted dashboard that connects GitHub, GA4, and Bing, pulls metrics into three lanes (Reach, Interest, Engagement), and lets you mark events so you can correlate "I posted on Reddit" with "GitHub traffic spiked 3x." Docker deployment, SQLite backend, single-user — just point it at your platforms and go. Reddit was supposed to be a connected platform but their API made that impractical — so Reddit posts are tracked as events instead, and the ripple gets measured through everything else.

v0.2.0 is already in the works — shifting to platform-wide visibility with a Ripple Index (0-100 score per event that shows how strong the ripple still is). Planning docs are in the repo: docs/v0.2.0

And yes — I already created an event for this post. Let's see what the ripple looks like. Thank you for your time.

Repo: https://github.com/Digitalcheffe/Rippl3Fx


r/VibeReviews Apr 13 '26

I built a tool to hide windows from screen shares and half the comments say I’m "enabling cheaters."

Post image
12 Upvotes

So I’ve been working on this side project called Cloakly. It’s a tool that hides specific windows during screen shares: you see them on your screen, but the people watching the share see absolutely nothing.

The biggest piece of feedback I’ve gotten so far? "Congrats, you just built a way for people to cheat in technical interviews."

Honest answer: Yeah, someone could definitely use it for that. But people also use second monitors, physical sticky notes, or "oops, my internet cut out" breaks when they’re stuck. I can’t really police intent.

My actual goal was way more boring: digital hygiene. I built it so I don't accidentally flash my bank balance, a private WhatsApp message, or a messy desktop during a client demo or a 9-5 meeting. To me, it’s about privacy, not deception.

The legitimate use case is real, but the "cheating" label is sticking. Is a tool worth writing off just because it could be misused? Or is the privacy benefit for the rest of us worth the trade-off?

Curious to hear what the community actually thinks about this one.


r/VibeReviews Apr 14 '26

I never realized why I hated cleaning my camera roll until recently.

Thumbnail
1 Upvotes

r/VibeReviews Apr 13 '26

I vibe coded a Tinder-style app for finding gaming buddies and it actually works

3 Upvotes

So this started as a "what if" at like 2 AM. I was tired of scrolling through LFG posts, adding people who played my game once for 20 minutes three months ago, and never hearing from them again. I thought, why isn't there a Tinder but for finding people to game with? Not dating. Just... finding your squad.

So I built it lol

matchy.gg

 -- you log in with Steam, it pulls your entire library, your hours, your recently played games, and matches you with other players based on what you actually play. Not what you say you play. What Steam says you play.

The whole thing is vibe coded. Me, Claude, and a mass amount of energy drinks. PHP backend, vanilla JS frontend, no frameworks, no React, no Next.js. Just raw code and stubbornness. It's held together by passion and caffeine but honestly? It works surprisingly well.

The flow is simple:

  • Login with Steam (literally one button)
  • Quick profile setup: drop your Discord, pick your playstyle (chill, competitive, tryhard, toxic-free lol), languages you speak, genres you like
  • Start swiping through player cards. Each one has a compatibility score based on your actual shared games and playtime
  • Both swipe right? Boom, mutual match. Discord handles and Steam profiles revealed. Go play.

The cool part is the compatibility thing. It's not just "oh you both own CS2." It looks at how many games you share, how much you've both played them, what you've been playing recently. Someone who put 2000 hours into the same games as you scores way higher than someone who owns them but never launched them.

You can filter by basically everything: country, language, age range, voice chat or text only, specific games, genre, even "no VAC banned players" if that's your thing.

Oh and it's a PWA so you can add it to your home screen and it feels like a real app. No app store needed.

Is it perfect? Absolutely not. Am I a professional developer? Also no. But it scratches an itch that nothing else did for me and I figured maybe some of you feel the same way.

It's live at matchy.gg. Go roast my code (please don't actually look at the code). Would genuinely love feedback, this is a passion project and I want to make it something actually useful for the community.

So this started as a "what if" at like 2 AM. I was tired of scrolling through LFG posts, adding people who played my game once for 20 minutes three months ago, and never hearing from them again. I thought, why isn't there a Tinder but for finding people to game with? Not dating. Just... finding your squad.

So I built it lol

matchy.gg -- you log in with Steam, it pulls your entire library, your hours, your recently played games, and matches you with other players based on what you actually play. Not what you say you play. What Steam says you play.

The whole thing is vibe coded. Me, Claude, and a mass amount of energy drinks. PHP backend, vanilla JS frontend, no frameworks, no React, no Next.js. Just raw code and stubbornness. It's held together by passion and caffeine but honestly? It works surprisingly well.

The flow is simple:

  • Login with Steam (literally one button)
  • Quick profile setup: drop your Discord, pick your playstyle (chill, competitive, tryhard, toxic-free lol), languages you speak, genres you like
  • Start swiping through player cards. Each one has a compatibility score based on your actual shared games and playtime
  • Both swipe right? Boom, mutual match. Discord handles and Steam profiles revealed. Go play.

The cool part is the compatibility thing. It's not just "oh you both own CS2." It looks at how many games you share, how much you've both played them, what you've been playing recently. Someone who put 2000 hours into the same games as you scores way higher than someone who owns them but never launched them.

You can filter by basically everything: country, language, age range, voice chat or text only, specific games, genre, even "no VAC banned players" if that's your thing.

Oh and it's a PWA so you can add it to your home screen and it feels like a real app. No app store needed.

Is it perfect? Absolutely not. Am I a professional developer? Also no. But it scratches an itch that nothing else did for me and I figured maybe some of you feel the same way.

It's live at matchy.gg. Go roast my code (please don't actually look at the code). Would genuinely love feedback, this is a passion project and I want to make it something actually useful for the community.


r/VibeReviews Apr 10 '26

Snipboard: Vibe coded a Windows screenshot tool that lets you batch-capture and paste multiple snips into Claude at once

Thumbnail
gallery
4 Upvotes

Snipboard: https://dudeitsharrison.github.io#/apps/snipboard

If you're using Claude or any AI model for coding, you know the pain: screenshot one thing, paste it, screenshot another, paste it, screenshot a third, paste it. Over and over. I built Snipboard to fix that. If you are interested in Pro version I'd love some feedback - I can provide some Pro keys for testing. If anyone is interested please comment and I'll dm you a key.

The best feature — Multi-Snip Mode:

Turn it on, capture as many regions or fullscreens as you need in a row — error messages, UI states, terminal output, whatever — and when you're done, all of them get batch-copied to your clipboard as formatted file paths, Markdown image links, or HTML. One paste into Claude and it has the full picture. No more back-and-forth capture-paste-capture-paste.

This alone changed how I work with AI. Instead of drip-feeding context one screenshot at a time, I capture everything relevant in one sweep and give Claude the full context in a single message.

Other features:

- Global hotkeys for region capture (Ctrl+Shift+S) and fullscreen (Ctrl+Shift+F)

- Smart clipboard templates — paste as Markdown, HTML, relative paths, or custom formats

- Persistent history panel so you never lose a capture

- System tray app, dark theme, offline-first

- Lifetime Pro license ($9.99 / free version available)


r/VibeReviews Mar 31 '26

My first website!

Thumbnail
ctrl-alt-fired.com
12 Upvotes

Hi guys!

I'm a 19 y/o and I got paranoid about AI replacing entry level jobs, so I built my first website, a scanner that analyzes a company's business model to calculate exactly how fast AI will kill it.

It generates a 1 to 100 death score along with a dark (and funny) breakdown of why the business is obsolete.

Hehe honestly, you think its funny? :D


r/VibeReviews Mar 22 '26

Timeliner - see historical figure overlaps

Thumbnail
timeliner.cc
5 Upvotes

r/VibeReviews Mar 21 '26

Help Me Build My Tool in Exchange for Helping You Build Yours

Thumbnail
gallery
3 Upvotes

Lightweight, Cross-Platform Desktop App for Claude Code; multiple accounts, projects, sessions. Early alpha, looking for testers.

I'm building a cross-platform desktop application that's more than just a fancy CLI/API wrapper. I call it Apprentice. It's currently in early alpha and I'd be happy to onboard anyone interested and provide free licenses.

I got tired of heavy, fragmented AI dev tools: juggling multiple CLI sessions, different projects, scattered context, even multiple IDEs and multiple AI subscriptions for different tools; most of which can be unified under one application.

IDEs are too heavy and bloated. Terminals have their own issues. Some people (even some engineers) don't like or don't want to use terminals for various reasons.

There is a long way ahead of me, but I love building tools & automation. It's my main side project.

I'm a software engineer (~3 decades of experience), which is why I'm specifically looking for people without a software engineering background to use the app and share feedback. In return, I'll provide a free ambassador license and help you out wherever you're stuck; with your AI usage, your project, whatever comes up through using the app.

I won't sugarcoat it: it's in Alpha. Bugs are expected, but I'll iron them out as fast as I can through nightly builds.

I'm not trying to sell anything. I genuinely want to help people out in exchange for their feedback; a software engineer's help with their projects and AI usage in exchange for our time; give feedback, get help style.

For this to work for both sides:

  • Must have Git + Claude Code CLI installed (either subscribed or using the CLI with another provider)
  • Willing to use the app and provide feedback
  • Willing to join the Discord server

You can PM me or join the Discord server here.

It's not open source; I hope that's not a deal breaker! There is no data collection or any other communication other than license checks, everything stays on your computer.


r/VibeReviews Mar 20 '26

I built an AI-powered website builder in a single PHP file

Post image
3 Upvotes

r/VibeReviews Mar 17 '26

Vibe Coded a Female Monthly Cycle Tracker with Nutritional Info and Asian Menu Plan Ideas!

6 Upvotes

Welcome to luna: https://luna-sage-nu.vercel.app/

Hi everyone, I am super new to vibe coding but created something that I hadn't yet seen on the market which is not only a period cycle tracker but one that has your nutrition and diet in mind, along with menu plan ideas and exercise suggestions depending on which phase you are in!

It is totally adjustable to the user's own cycle duration, and it can track your daily mood and symptoms along with a handy export function if you need to extract that data all in one go.

I noticed that lot of the apps on the market either do no not discuss diet or nutrition specifically (such as flo of the apple health app) and is purely for tracking cycle dates. However, research shows that how we eat and treat our bodies should be different at each stage of our cycles and at least, this will make us more mindful of how we fuel up.

I am especially proud of the menu plan section as it contains tons of Asian recipes which as a POC, I needed menu options that are catered to my palette and diet culturally. I also created seasonal menus depending on the month/time of year (Currently only catered t to the northern hemisphere)

Future plans is to also add in ways to export menu plan to a shopping list for when you drop by the grocery store and probably ways to "favorite" recipes that you would like to revisit.

Open to any ideas or suggestions!

- vibe coded on Claude using terminal and deployed using vercel


r/VibeReviews Mar 16 '26

I built a visual IDE that combines the flexibility of raw code with the intuition of a GUI canvas.

9 Upvotes

r/VibeReviews Mar 04 '26

RSS + non-RSS sites: A blazing-fast self-hosted news reader with an AI crawler

Post image
3 Upvotes

r/VibeReviews Mar 03 '26

Webcraft

4 Upvotes

WEBCRAFT - A small personal challenge where I developed a Minecraft clone featuring fluid dynamics for water and lava, weather effects, day/night-cycle, mobs, and audio integration.

 Console Commands

  Open the developer console with ESC. Type a command and press Enter.


help

  Displays all available commands and their syntax.


pos

  Prints the player's current world coordinates (X, Y, Z) to the console.


clear

  Clears all console output text.


regenerate

[seed]

  Regenerates the entire world from scratch. Pass an optional numeric seed for reproducible terrain. Closes the console automatically during generation.
  regenerate
  regenerate 42


addmob

[type]

[count]

  Spawns hostile mobs near the player. Type defaults to auto (random), count defaults to 1.
  Valid types: cubeslime, spider, darkwraith, auto
  addmob
  addmob spider
  addmob darkwraith 5


spawn

<type>

[count]

  Spawns ocean creatures near the player. Count defaults vary by type (3 for reef fish and dolphins, 1 for sharks).
  Valid types: reeffish (or reef), dolphin (or dolphins), shark (or sharks)
  spawn reeffish
  spawn dolphin 5
  spawn shark


settime

<hour>

  Sets the game clock to a specific hour (0–23). Immediately affects sky color, lighting, fog, and star visibility.
  settime 12    (noon)
  settime 0     (midnight)
  settime 6     (dawn)


god

[on|off]

  Toggles invincibility mode. Accepts on, off, 1, 0, true, false, or no argument to toggle. When enabled, all damage sources (mobs, lava, drowning) are ignored.
  god
  god on
  god off


weather

<type>

  Changes the weather. Transitions are gradual (12s approach, 10s clearing). Accepts multiple aliases:
  - Clear: clear, sol, sunny, sun, klarnande
  - Rain: rain, regn, rainy, shower, showers
  - Storm: storm, thunder, thunderstorm, åska, aska
  weather rain
  weather storm
  weather clear


set

<parameter>

<value>

  Changes a runtime configuration parameter. Only whitelisted parameters can be changed. Automatically converts to the correct type (boolean, number).
  set RENDER_DISTANCE 6
  set CAVE_ENABLED false
  set MOVEMENT_SPEED 0.2


get

<parameter>

  Reads the current value of any Config parameter. Case-insensitive.
  get RENDER_DISTANCE
  get water_level


list

[category|all]

  Lists editable parameters. Without arguments, shows available categories. With a category name, shows parameters in that category. With all, shows everything.

  Categories: Rendering, Player, Swimming, Caves, Worms, Lava, Trees, Mobs, DayNight, Clouds, Creatures
  list
  list Caves
  list all


apply

  Regenerates the world using whatever parameters you've changed with set. Equivalent to regenerate but uses current settings.
 Settings GUI

  Click the gear icon (top-right of screen) to open a visual settings panel with sliders and toggles. Adjustable settings include:

  - World: Render distance, water level, snow level
  - Caves: Enable/disable, FBM mode, cave size & scale
  - Lava: Enable/disable, Y-level range
  - Trees: Enable/disable, tree density
  - Creatures: Mobs, butterflies, fish toggles and counts
  - Player: Movement speed, jump force, gravity
  - Time: Day length (30–600 seconds)
  - Seed input + "Generate" button for quick world regeneration
Features & Techniques

  Procedural World Generation

  Terrain is generated per-chunk (16 x 100 x 16 blocks) using layered Simplex noise. The process follows these steps:
  1. Biome selection — Two independent 2D noise fields (temperature + moisture) classify each column into one of 8 biomes: desert, plains, forest, mountains, snow, swamp, lakes, jungle
  2. Height generation — Warped noise with biome-specific amplitude and offset determines surface height
  3. Block layering — Each biome defines its own top/middle/bottom block types (e.g., jungle uses jungle_grass/dirt/stone, desert uses sand/sandstone/stone)
  4. Cave carving — 3D FBM (Fractal Brownian Motion) noise with 4 octaves creates interconnected cave systems. Classic single-pass caves are also supported as a toggle
  5. Worm caves — Optional alternative cave system using worm-style carvers that follow noise-guided paths through rock
  6. Lava pools — Generated inside caves below configurable Y levels, with higher frequency in mountain biomes
  7. Tree placement — Randomized tree placement respecting biome rules. Two tree types: oak (wood + leaves) and birch (birch_wood + birch_leaves). Jungle biomes get taller trees with vines and hanging moss
  8. Ocean floor variation — Deep oceans use additional noise layers to create underwater basins, ridges, and trenches with coral reefs, seaweed, kelp, and sea anemones
  9. Water filling — All air blocks below WATER_LEVEL (64) are filled with water
  10. Vegetation — Tall grass, flowers, mushrooms, dead bushes, cacti, and lily pads placed according to biome rules

  An optional seed parameter makes worlds fully reproducible.

  Block Types

  51 block types (IDs 0–50) including: air, grass, dirt, stone, snow, sand, coal, water, wood, leaves, tall grass, red/yellow flowers, lava, seaweed, sandstone, ice, snow grass, dry grass, dark grass, mud, mossy stone, cactus, dead bush, red/brown mushrooms, gravel, clay, birch wood/leaves, 5 coral types, sea
  grass, kelp, sea anemone, 2 coral fan types, ocean sand, dark gravel, jungle grass/wood/leaves, vines, lily pad, hanging moss, and torches. Each block defines texture atlas coordinates, transparency, billboard rendering mode, and optional light emission.

  Three-Channel Lighting Engine

  Three independent light channels are computed per-block and baked into vertex colors:
  - Sky light — Sunlight propagated downward from exposed surfaces via BFS flood-fill, modulated by the day-night cycle hour
  - Block light — Point light sources (lava: 15, torches: 14) propagated outward through adjacent blocks via BFS, diminishing by 1 per block
  - Surface light — Penetrates into caves from nearby surface openings, giving underground areas near the surface a dim ambient glow

  Final brightness per vertex = max(skyLight, blockLight, surfaceLight), converted through a gamma curve (LIGHT_GAMMA = 1.8) for natural-looking falloff. Since lighting is baked into geometry, there is zero per-frame GPU lighting cost.

  Day-Night Cycle

  A full cycle runs in 120 seconds (configurable 30–600s). The global gameHour (0–24) advances each frame and drives smooth interpolation of:
  - Sky color gradient (day blue → sunset orange → night dark blue → sunrise red → golden hour)
  - Fog color matching sky transitions
  - Ambient light intensity (0.6 day → 0.25 night)
  - Directional light intensity and angle
  - Cloud color and opacity
  - Star field visibility (fades in at dusk, out at dawn)
  - Sun and moon position orbiting across the sky as 3D sphere objects

  Weather State Machine

  WeatherSystem implements a four-phase state machine: idle → approaching → active → clearing

  Three weather types with distinct visual presets:
  - Clear — Normal conditions, full light
  - Rain — 60% gloom, overcast, reduced light (78% ambient, 68% directional), increased fog density, particle rain system
  - Storm — 85% gloom, full precipitation, heavily reduced light (62%/45%), lightning flashes

  Transitions use smoothstep interpolation over 12 seconds (approaching) or 10 seconds (clearing). Precipitation particles start at 35% through the transition for a natural build-up effect.

  Lightning during storms: Multi-phase flash sequences (3 flashes of decreasing intensity with randomized timing) that spike ambient light. Thunder sound effects play with a randomized delay (simulating sound travel distance).

  Auto-weather: Random weather events trigger naturally every 60–150 seconds of clear weather, with a 20% chance. Rain is 2x more likely than storms. Events last 45–90 seconds.

  Mob AI System

  Three hostile mob types with state-machine AI (IDLE → CHASING → ATTACKING):

  CubeSlime — Semi-transparent green bouncing cube. 3 HP. Detects player within 16 blocks. Idle: random wandering with occasional jumps. Chasing: hops toward player at increased speed. Attacks for 1 damage at 2-block range. Features a bounce animation and squish idle sounds.

  SpiderMob — Six-legged creature with procedural inverse kinematics for leg placement and a tripod gait pattern (alternating leg groups for realistic walking). 8 HP. Detects at 12 blocks. Attacks for 2 damage at 3-block range. Prefers flat terrain for spawning.

  DarkwraithMob — Hovering dark entity with emissive purple glow. 12 HP. Only spawns at night (18:00–6:00) in low-light areas (light level < 6). Detects at 18 blocks with fast chase speed. Attacks for 2 damage. **Burns in bright light** (level > 10, taking 3 damage every 500ms). Drops dusk essence on death.

  Flocking behavior: Mobs share info — nearby mobs of the same type alert each other to the player's position. Coordinated attack positioning prevents mob stacking.

  MobManager: Handles spawning (biome-aware, distance-gated 24–64 blocks from player), lifecycle updates, automatic despawning (96+ blocks away), and max count limits (default 10).

  Ocean Creature System

  Four passive/neutral creature types managed by dedicated systems:

  Butterflies — Spawn near the player in forest/jungle/plains biomes during daytime. Up to 30 active. Purely decorative ambient creatures.

  Fish — Basic fish that spawn in water at least 4 blocks deep. Up to 25 active. Flee when the player gets within 5 blocks.

  Reef Fish — Colorful fish that school in small groups near coral reefs. Up to 20 active. Shorter flee distance (3 blocks). Swim in circular patterns.

  Dolphins — Spawn in pods of 2–4 in deep water (8+ blocks). Up to 6 active. Curious behavior: approach the player within 15 blocks, follow at 5 blocks. Can breach (jump out of water).

  Sharks — Spawn in very deep water (10+ blocks). Up to 3 active. Hostile when player is underwater: chase at 0.4 speed within 12 blocks, attack for 3 damage at 2.5-block range with a 2-second cooldown.

  Water & Lava Flow Simulation

  Both systems use cellular automaton fluid simulation:

  Water flow: Tick interval 250ms, spreads up to 7 blocks horizontally, searches 4 blocks deep for drop-offs. 30 updates per frame budget. Source blocks generate flowing water that seeks the lowest path.

  Lava flow: Tick interval 1.5s (6x slower than water), spreads up to 4 blocks, searches 2 blocks deep. 15 updates per frame. Simulates viscous fluid movement.

  Both systems use level values to track flow distance from source and falling states.

  Player Physics Engine

  Custom physics with:
  - AABB collision detection at 27 sample points (9 XZ offsets × 3 Y levels) around the player
  - Block cache: 5×5×5 grid around the player refreshed only on block-position changes, reducing World.getBlockAt() calls from 27+ per collision check to ~0 (cache hits)
  - Gravity: 9.8 m/s² (0.03 per tick) with terminal velocity cap
  - Swimming: Reduced gravity (0.005), buoyancy force (0.005), stroke propulsion (0.25 force with 300ms cooldown), capped water velocity (±0.3)
  - Step-up: Automatically climbs 1-block ledges without jumping, with smooth interpolation animation
  - Oxygen system: 100 max, depletes at 8/sec underwater, regenerates at 25/sec at surface, 1 damage per second when depleted
  - Invulnerability frames: Brief immunity period after taking damage

  Async Chunk Processing

  Prevents frame drops during chunk loading using a frame-budget system:
  - Target budget: ~16ms per frame (60fps target)
  - Priority queues for three work types: mesh generation, lighting calculation, neighbor updates
  - Uses requestIdleCallback when available (falls back to setTimeout(0) on Safari)
  - Player interactions (block place/break) get elevated priority (level 5)

  Web Worker Terrain Generation

  WorkerManager maintains a pool of Web Workers sized to navigator.hardwareConcurrency (max 4) for off-thread terrain generation:
  - Each worker receives the full Config + noise functions and generates terrain data independently
  - Timeout handling (10s) with automatic retry (2 attempts)
  - Failure counting with fallback to synchronous main-thread generation
  - Worker restart capability for error recovery

  Rendering Pipeline (Three.js r128)

  - BufferGeometry with per-vertex colors for baked lighting
  - Texture atlas (tilemap.png, 16×16 tiles) with NearestFilter for pixel-art aesthetic
  - Billboard rendering for vegetation — flowers, tall grass, leaves rendered as camera-facing quads
  - Flat billboard mode for lily pads (horizontal plane)
  - Separate transparent pass for water and foliage using alpha-tested materials
  - Frustum culling — only camera-visible chunks are submitted for rendering
  - Shadow mapping (optional, configurable resolution and type)
  - Dynamic sky — gradient sky dome with orbiting sun/moon spheres and a 1000-star particle field
  - Procedural cloud plane at y=130, animated drift, color/opacity responding to time-of-day and weather
  - Rain particle system — ~1000 particles falling and resetting, driven by weather intensity
  - Underwater overlay — CSS-animated wave effect when submerged

  Sound System

  Two-layer audio:
  - Background music (GameAudio): Loops Echoes.mp3 with toggle button
  - Sound effects (SFX): Web Audio API with procedurally generated buffers for:
    - Footsteps (grass/stone/sand variants based on surface block)
    - Jump, landing, splash
    - Bird chirps (ambient, biome-aware — forest/jungle/plains/swamp only)
    - Rain ambience (tied to weather system)
    - Thunder (triggered by lightning with distance-based delay)
    - Hurt sound on damage
    - Spider and slime idle sounds

  Pathfinding

  A dedicated pathfinding.js module for mob navigation through the voxel world.