Creating Procedural Cities in Blender: Geometry Nodes vs Python Script

Sdílet
Vložit
  • čas přidán 19. 03. 2022
  • Cities are big things that take a long time and a lot of effort to make. That's the real world description - with considerably less effort, we can make them fast and "easy" with Blender. In this video, you'll see how I do this through both Blender's geometry nodes and its Python interpreter.
    Having the ability to procedurally generate cities really comes in handy. I've used my own city generators in the past for renders and game models.
    Music:
    We Always Thought the Future Would Be Kind of Fun by Chris Zabriskie is licensed under a Creative Commons Attribution 4.0 license. creativecommons.org/licenses/...
    Source: chriszabriskie.com/darkglow/
    Artist: chriszabriskie.com/
    #Blender #GeometryNodes #Python #Procedural
  • Hry

Komentáře • 54

  • @KadenZombie8
    @KadenZombie8 Před 2 lety +14

    What a nice and insightful video! You explained all of this extremely well, making it easy to understand for me. The music and the minimalist design of the city buildings is also very appealing. Your channel is critically underrated and I hope that it grows in the future. :)

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +4

      Thanks for the kind words, really appreciate it!

  • @ZexMaxwell
    @ZexMaxwell Před 2 lety

    I've been having a hell of a time trying to generate a city using geo-nodes. but by far, this has been the best implementation with geo-nodes I've seen based on all the tutorials I've been watching.

  • @alabrrmrbmmr
    @alabrrmrbmmr Před 2 lety +1

    Great production and great tutorial. Thanks!

  • @daniellasso8831
    @daniellasso8831 Před 2 lety

    This is amazing content you’re putting out

  • @geometron3646
    @geometron3646 Před rokem

    Amazing video. Great demonstration of the abilities and pros and cons... would like to see a more detailed, granular deep dive / step by step tutorial of some of it.

  • @HERMITES
    @HERMITES Před 12 dny

    This is amazing.

  • @unboring7057
    @unboring7057 Před 2 lety

    This is a fantastic Blender tutorial mate, thank you so much! I'm looking forward to diving into this, what a great learning resource! New fan over here. :)

    • @qyo
      @qyo Před rokem

      🎈

  • @Testurteil20
    @Testurteil20 Před rokem

    Very nice explained. Your skillset seams to be just that why i want to achieve in the Future.

  • @neorientalist
    @neorientalist Před 3 měsíci

    simply WOW!

  • @glenneric1
    @glenneric1 Před 2 lety

    Nice work.!

  • @wahku1
    @wahku1 Před 2 lety

    Nice work...!

  • @SlothTheTortoise
    @SlothTheTortoise Před 2 lety

    it's wild hearing your voice change over the years across your two channels. What hasn't changed is you're a very articulate and brilliant code writer and model maker. I wonder what kind of work you would produce if you revisited your toontown projects with your newfound knowledge and skills.

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety

      Thanks so much! Also for sticking around through the years - that means a lot.

  • @artr0x93
    @artr0x93 Před 2 lety

    one way to get the best of both might be to use scripting to generate custom node trees, with sliders for whatever options you want to tweak in real time. You can add/linkup nodes etc. through the API
    Though I'm still not sure if it'd be possible to get around the UV mapping problem

  • @shawnkoh5195
    @shawnkoh5195 Před 2 lety +9

    Not only is your work amazing, your video and its animations are absolutely mind blowing.
    How did you go about creating the animations in the video?

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +7

      Thank you so much, that means a lot. I rendered the animations with Eevee in Blender, for texture diagrams I animated some shader setups, placed buildings and points use custom geometry node setups, and these are all rendered with transparent backgrounds so that they can be overlayed onto the background in post. I can play into the transparent effect by using the holdout shader on certain parts of the mesh.
      Maybe at some point I'll make a video about the animations as well!

    • @shawnkoh5195
      @shawnkoh5195 Před 2 lety

      @@LoneDeveloper thank you for sharing! yes that will be incredible! do you have any good resources to recommend learning how to do this?

  • @abi858
    @abi858 Před 2 lety

    very interesting

  • @Requios
    @Requios Před rokem +1

    would love to see a more in-depth video showing the python and geo node setup

    • @Nuns341
      @Nuns341 Před rokem

      Yep I agree this video has gold information but I can't seem to understand a few stuff

  • @jendabekCZ
    @jendabekCZ Před 2 lety +2

    Those 2D animations are maybe even more cool, they are all made in Blender too? Would be nice to see a tutorial on making them! Thanks :)

  • @ciliaana3389
    @ciliaana3389 Před 2 lety +1

    Can you make the geo node file available for download ?

  • @ciliaana3389
    @ciliaana3389 Před 2 lety +1

    Wasn't there a node in geo node that also allows to run script ?

  • @Pyrhaaa
    @Pyrhaaa Před rokem

    Thanks man, really interesting to get to see python vs GN. Diving right in both now. How do you do your little animation in between the scene? Blender as well? Cheers!

    • @LoneDeveloper
      @LoneDeveloper  Před rokem

      Hey thanks! I used Blender for everything in this video. Most of the animations and graphics are created semi-procedurally with geometry nodes and animated by keyframing input values.

  • @qyo
    @qyo Před rokem

    🤩

  • @LoneDeveloper
    @LoneDeveloper  Před 2 lety +5

    Thanks for watching! For more information, check out the companion article on my site, lonedevr.com

    • @JeraWolfe
      @JeraWolfe Před 2 lety +1

      I am absolutely reading up on this.
      I really want to procedurally generate a city.

  • @philippaldowieser1942
    @philippaldowieser1942 Před 2 lety

    What about version control in Blender? A python script could be easily loaded via git. Are there similar possibilities in Blender, say with Geometry nodes?

  • @markwilliamson6884
    @markwilliamson6884 Před 2 lety

    Hi - really helpful video. Do you have any thoughts on which to learn out of the python api or geometry nodes? (to give a bit of context I've been writing software for a living for the best part of the last 35+ years). They both seem to have a learning curve. I'm comfortable with shader nodes but I find myself quite frustrated with geometry nodes - for example trying to add panelling to the inside of a room isn't obvious to me. Geometry nodes seem like the future of blender but python probably a better fit for my skills I guess.

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +1

      both are pretty useful, but for me it comes down to speed. Python gives you the ability to do more than geometry nodes through blender's api, although it's much much slower than geometry nodes considering it can't take advantage of parallelizing calculations unless you open a GPU buffer.

    • @markwilliamson6884
      @markwilliamson6884 Před 2 lety

      @@LoneDeveloper cool. That’s really helpful! Thank you

  • @openroomxyz
    @openroomxyz Před 2 lety +2

    Hi can you set parameters of geometry nodes from python?

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +3

      Hi there! This is a really good question, while I've never done this myself so I can't say for certain, I'm sure you can get/set values exposed on the geometry nodes modifier object. Something like get the geometry nodes modifier from some object, find the data path of the exposed parameter, and then get or set a value.

    • @openroomxyz
      @openroomxyz Před 2 lety

      @@LoneDeveloperThanks, btw you video is amazing, happy that you did create it.

    • @kicka55
      @kicka55 Před 2 lety

      The whole point of geonmetry nodes is to replace Python and not expose "artists" to scripting. It's kinda sad but I hope they change their stance on that. I need a simple way to read external data into geometry nodes. A workaround right now is to read a CSV into Blender using a script and create an object that holds that information you need on vertices. You can then access said object into geometry nodes and read each vertices values out based on their ID.

  • @lucian6172
    @lucian6172 Před 2 lety

    GTA 4 and 5 seem to use more advance city generators. How do we match those using Blender ? Any ideas ?

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +3

      You'd probably need a larger collection of realistic base assets. Also individual buildings and sidewalks would need their own system of generating smaller details beyond just window textures. It doesn't make sense to instance small details all at once though so you'd only want to render those within a certain distance. Terrain generation would also need to consider high poly displacement and texture mapping.

    • @jendabekCZ
      @jendabekCZ Před 2 lety +1

      First you need to have a company with thousands employees :)

  • @urbandecay3436
    @urbandecay3436 Před 2 lety

    How did you get the API page to be in dark mode?

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +1

      I use a Chrome extension that modifies web pages to force them into dark mode. The one I use is called Dark Reader.

  • @gilbygilberson
    @gilbygilberson Před 2 lety

    Pretty cool and all but A Nostalgic Movie is definitely coming out soon, right?

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety

      It is with a heavy heart I must break the news that A Nostalgic Movie has been delayed to 2027. I would like to apologize on behalf of everyone at Nostalgia Inc for the tragic decision.

    • @gilbygilberson
      @gilbygilberson Před 2 lety

      @@LoneDeveloper NOOOOOOOOOOOOOOOO

  • @philippaldowieser1942
    @philippaldowieser1942 Před 2 lety

    Is there a possibility to add a python script as a geometry node? For sure the combination would open some new possibilities...

    • @LoneDeveloper
      @LoneDeveloper  Před 2 lety +1

      This would be cool, but as far as I know it's not yet possible. Keep in mind there would probably be a performance gap between any run python scripts and the geometry nodes!

  • @sistemafuturo
    @sistemafuturo Před 2 lety

    ...

  • @ArisTheInquring
    @ArisTheInquring Před rokem

    but.. aren't the geometry nodes also a python script

  • @AmadeusMoon
    @AmadeusMoon Před 2 lety

    I see you are starting to use humor in your videos