[REPORT] notsource - geometry nodes & procedural systems - artist stipend #2

__EN
Hello Incubadora,

notsource here to give you a bit of an overview on the work done for the artist stipend #2 during the months of February and March.

My focus during these two months was to deepen my understanding of procedural systems using Blender’s new tool - geometry nodes.

But before we get to procedural systems, what they mean, their advantages and how we can use them, I think it’s important to first distinguish between Destructive and Non-Destructive workflows.

A good example of a Destructive Workflow can be seen in Photography - the photographer commits to the photo and it can’t be changed (let’s pretend it can’t be edited either for this example).

The photographer can take more photos or wait for a different time of day but each time he commits to a camera angle, time of day, composition, lens, etc. In the same way, a painter commits to a brushstroke, which can be painted over. Still, a painting falls largely within the Destructive Workflow because at the end of the process the painter can’t move a tree 2cm to the side, or try 5 different shades of green without major disruptions to everything else in the painting.

This is where geometry nodes come in. As a Non-Destructive Workflow and tool, we can create systems without having to commit - maintaining control over all parameters at all times.

For instance, if we are working on a landscape we can now procedurally draw a river that takes a curve as input - and instead of committing to a specific river shape, we can now edit the shape at any point during creation.

The same principle can be applied to a particle system responsible for ‘spawning/creating’ trees. We don’t have to commit to any number of trees, their position, or even type, because at any time we can increase or decrease the value/change textures/change 3d objects. We can now extend this system to also accommodate control over blades of grass, rocks, birds, branches, etc.

With the help of noise textures, and number randomizers we can now make this system create hundreds of thousands of different simulations.
Each one with different curves, number of trees, position, rotation etc; with a button click.

It’s important to note that this is just an example and the tool can be shaped to accommodate any type of large scale systems like the ones we see in Movies/TV Shows/Games. Huge metropolitan areas, intricate forests and complex space scenes with debris are just a few examples of what can be achieved.

Now I’m sure you are wondering “well did you create such a system then?”. The short answer is not yet.

This type of task is usually conducted by large teams of artists working on environments for movies, video games, etc.
Furthermore, procedural generation and node-based systems rely heavily on having an understanding of how scripts and logic flow. Not to mention they become extremely complex and computer taxing very quickly.

I took these two months to create smaller-scale systems and learn the tools and my plans for the NEAR future are to further develop and get more comfortable with this tool.

Below you can see the result of some the experiments taken in the last couple of months. Lastly, I just want to acknowledge that none of this could be done without the incredible community behind blender.
The forums, tutorials explaining processes, and the add-ons that complement the already awesome free software helped expedite an otherwise complex learning experience.

Also huge thanks to IncubadoraDAO for the scholarship, it was great being able to learn without having to focus so much on time or financial aspects.

__PT
Olá Incubadora,
notsource aqui para vos dar alguma informação sobre o trabalho feito em relação à bolsa artística #2 durante os meses de fevereiro e março.

O meu foco durante estes dois meses foi aprofundar o meu conhecimento de sistemas algorítmicos utilizando a ferramenta geometry nodes.

Antes de falarmos sobre sistemas algorítmicos, o que são, as suas vantagens, e como os podemos utilizar, acho que é importante distinguir entre métodos de trabalho Destrutivos e Não Destrutivos.

Um bom exemplo de um método/processo Destrutivo pode ser observado em Fotografia - no qual a hora do dia, composição, ou lente nao pode ser alterada depois de ser tirada a foto. Da mesma maneira, um pintor tradicional tem muita dificuldade em experimentar 5 tons de verde diferentes para uma árvore, mas um pintor digital apenas tem que mudar a cor dessa layer.

É aqui que geometry nodes entra em ação. Como uma ferramenta/processo Não Destrutivo podemos criar sistemas sem termos que cometer a qualquer propriedade - e mantendo o controle sobre todos os aspectos durante o processo de criação.

Por exemplo, se estivermos a trabalhar numa paisagem podemos criar um rio que pede uma curva com input - e em vez de nos cometermos a uma curva específica, podemos alterar a mesma em qualquer altura.

O mesmo princípio pode ser aplicado a sistemas de partículas responsáveis por criar e espalhar qualquer tipo de objeto 3D (árvores, rochas, relva, etc).

Com a ajuda de texturas e geradores de números aleatórios podemos fazer este sistema criar centenas de milhares de simulações diferentes. Cada uma delas com uma curva (neste caso o rio) diferente, número, posição e tipo de árvores diferente, etc.

É importante realçar que isto é apenas um exemplo. A ferramenta está preparada para acomodar qualquer tipo de sistema de larga escala como os que vemos em filmes, séries ou video jogos.

Infelizmente a criação de tais sistemas é bastante complexa e normalmente levada a cabo por equipas de artistas, por isso o meu foco foi começar com sistemas mais leves, e ir aumentando a complexidade à medida que aprendia.

Podem ver o resultado de algumas destas experiências aqui no post em baixo. Por fim, só queria agradecer à comunidade por detrás do Blender 3D, pela ajuda nos fóruns, os tutoriais a explicar processos e os plugins que ajudam a completar tarefas mais rapidamente.

Quero agradecer também a IncubadoraDAO pela bolsa, foi uma grande ajuda estes dois meses poder aprender e nao estar tão focado no aspecto financeiro.

wraith - displacement modifiers controlled by textures, cloth brush sculpting, wireframe modifiers

collision - hair particle system generated on mesh, controlled by forces and textures

high council - procedural curves generated on mesh, controlled by textures

wip - procedural curves generated on mesh, controlled by textures

3 Likes

Incrível, @notsource !!

Grande trabalho! Muito feliz em apoiar o crescimento desta produção :dizzy: :purple_heart:

3 Likes