explaingit

achrefelouafi/basicproceduralbuilding

Analysis updated 2026-05-18

16TypeScriptAudience · developerComplexity · 3/5Setup · moderate

TLDR

A web based 3D building designer built with Three.js, ported from a Blender geometry nodes graph so it matches Blender's output exactly.

Mindmap

mindmap
  root((BasicProceduralBuilding))
    What it does
      Web building configurator
      Adjust width length height
      Change window seed
    Tech stack
      Three.js
      TypeScript
      Blender 4.2 tooling
    Use cases
      Prototype building shapes
      Study Blender to web ports
      Add weather effects
    Audience
      Developers
      3D graphics learners
    Features
      Snow and rain effects
      Day night lighting presets
      Cinematic post processing

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Prototype a small procedural building for a browser based 3D scene.

USE CASE 2

Learn how to port a Blender geometry nodes graph into TypeScript code.

USE CASE 3

Add snow or rain weather effects to a Three.js scene without extra geometry.

USE CASE 4

Study how instanced meshes can render repeated building parts efficiently.

What is it built with?

TypeScriptThree.jsnpmBlender Python

How does it compare?

achrefelouafi/basicproceduralbuildingacoyfellow/tuiportdabao-yi/model-flux
Stars161616
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderatemoderate
Complexity3/54/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Editing the 3D source requires Blender 4.2 or newer plus Windows specific command line paths shown in the README.

The README does not state a license, so usage rights are unclear.

In plain English

This project is a web based building configurator built with Three.js. It lets you design a small building in the browser by adjusting sliders for width, length, and height, plus a window seed number and a ground floor style. The interesting part is where the logic came from: the original design was made in Blender using a geometry nodes graph, and this project is a faithful TypeScript port of that same graph. The author checked the port instance by instance against Blender's own evaluated output, so the positions, rotations, and window choices match exactly for a given seed. Each wall of the building is treated as a grid of cells. The top row becomes the roof edge, the last column becomes a corner pillar, the ground row alternates between doors and shop windows, and the rest of the cells get one of two window styles chosen by the same random number method Blender uses internally. The building sits on a small floating platform with grass, soil, a plaza area, and simple low poly trees, bushes, and lamps, all generated in code rather than loaded from image textures. There are lighting presets for golden hour, day, and night, each changing the sky, fog, lighting rig, clouds, and how the windows glow after dark. A post processing stack adds bloom, tone mapping, vignette, grain, and color grading. The app also includes optional snow and rain effects with many adjustable settings, such as snowfall density and accumulation, or rain streaks and surface wetness, all applied directly to the building's materials without adding extra geometry. For people who want to edit the original 3D model, the README includes Blender 4.2 and newer command line steps to re export the building parts, dump the node graph to JSON, and generate reference data used to verify the web version still matches Blender after any changes. To run it locally you install dependencies and start the dev server with npm. This is a niche, technically focused project aimed at developers interested in procedural generation or porting Blender logic to the web, rather than a general purpose tool.

Copy-paste prompts

Prompt 1
Explain how this project ports a Blender geometry nodes graph into TypeScript so I could apply the same approach to my own Blender model.
Prompt 2
Show me how the grid based facade generation in generator.ts works and how I could add a new window style.
Prompt 3
Help me set up this project locally with npm and get the dev server running.
Prompt 4
Walk me through how the snow and rain effects are added to materials using onBeforeCompile in Three.js.

Frequently asked questions

What is basicproceduralbuilding?

A web based 3D building designer built with Three.js, ported from a Blender geometry nodes graph so it matches Blender's output exactly.

What language is basicproceduralbuilding written in?

Mainly TypeScript. The stack also includes TypeScript, Three.js, npm.

What license does basicproceduralbuilding use?

The README does not state a license, so usage rights are unclear.

How hard is basicproceduralbuilding to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is basicproceduralbuilding for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.