WBuilds WBuilds - Step-by-Step Minecraft Build Guides (Minecraft build guides app, iOS + Android) has a step-by-step 3D viewer in TypeScript on three.js r186 / WebGL 2, running in a WebView. A Web Worker meshes 16x16x16 chunks; the page uploads and draws. It already runs at 120 fps on Android and 60 on iPhone. This task is about look.
Deliverable, fixed $200 on completion:
Shader-pack style ambient occlusion (reference: Complementary Reimagined) in the worker mesher:
- occlusion as its own vertex attribute, driven by an “AO strength” slider in our existing tweak panel
- half-block probing so stairs, slabs, fences and walls get creases, not only full cubes; panes and doors must not self-shade
- consistent across chunk borders
- our Vitest suite stays green, with tests for the new cases
- matches three reference renders we provide; worker mesh time within 20% of today (we log it)
You get a small clean codebase (~5k lines), README, dev server with a real build, reference renders, fast answers. Work on a branch of a private repo.
Looking for someone who has written a voxel/terrain mesher or custom GLSL shading. If you can say in two sentences how you would compute per-vertex AO on a half-block occupancy grid, you are the right person. Minecraft shader-pack experience is a plus.
Reply with one relevant piece of work and your availability. More bounded tasks follow if this goes well: coloured block light from torches, water and glass, a post pass within a mobile frame budget.
Sagar
you can reach out to me at - indiecreatorluck@gmail.com
Hi Sagar, I built a small proof against your spec before applying: [demo link]
It’s a one-chunk three.js viewer with per-vertex AO computed on a half-block occupancy grid. Every block is two stacked half-cells, so slabs (and by extension stairs) shade correctly with no special-casing, which I understood to be the hard part of your task. AO is baked as a vertex attribute with strength as a shader uniform, so the slider never re-meshes. Quad diagonals flip toward the darker pair to avoid interpolation artifacts. Mesh time is shown live in the HUD (about 10 ms for 2k quads, hand-rolled mesher).
Honest scope note: I haven’t written Minecraft shader packs. My background is three.js application work (scene editing, cameras, collision) and heavy TypeScript, and the demo above is me closing that gap against your actual requirements. Chunk-boundary probing and pane/door self-shading exclusion are mesher-level extensions of the same probe, and I’m comfortable working against your Vitest suite and reference renders.
Availability: as needed
Hi, sagar, Thanks for reaching out. I’m interested in helping with the WBuilds ambient occlusion implementation.I’m a Senior 3D WebGL Developer with 7+ years of experience building real-time browser-based 3D applications using WebGL, Three.js, GLSL, TypeScript, and performance-focused rendering pipelines. I’ve worked on projects involving custom shaders, geometry optimization, GPU performance tuning, and maintaining smooth 3D experiences across desktop and mobile devices.
One relevant piece of work: Built and optimized interactive WebGL 3D platforms using Three.js/React Three Fiber, including custom rendering solutions, asset optimization, and shader/performance improvements. For the voxel AO approach, I would calculate per-vertex AO by sampling nearby cells in the half-block occupancy grid around each vertex, checking side and corner occlusion values. Each vertex would receive an AO factor stored as a vertex attribute, which the shader can use to blend the final lighting while handling special cases like transparent blocks and chunk borders. I’m available to start soon and can dedicate focused time to completing the task. I’d be happy to review the codebase and reference renders. Best regards