This is a relatively simple procedural city / city block generator built using the latest version of THREE.js (r102).
It uses a speed-optimized perlin noise generator in order to allocate city blocks. I've tried to include as much detail and info in the javascript code comments (located in js/procedural.city.generator.js). Full credit for the perlin noise implementation goes to Stefan Gustavson (stegu@itn.liu.se), Peter Eastman, and Joseph Gentle.
Copyright © 2010-2019 three.js authors.
You can find a full working example / pen created at CodePen.io using the link provided below:
https://codepen.io/photonlines/pen/JzaLYJ
The work is licensed under The MIT License.