This is my three year project. A world-building framework. Kabra Nodes. I’ll post updates here from time to time.
Is this an addon? any beta for testing?
If this is an addon i’d like to test it
I appreciate your interest. It’s not currently an addon. I’m undecided what to do with it. In any case, it’d be a real unpleasant experience to use until the UI is built. The UI shown is prototyped in Figma. There are hundreds of moving parts, so UX needs to be right before it’s worth building.
Here is a picture of the old, incomplete bricking system.
Can’t wait to see how this progresses. I would love to try something like this out in the future whenever you feel like its ready!
Openings! I’m so glad to finally work on them. Small work for such a big payoff visually. It’s already pretty versatile too, shown here in arch-head and circle configurations. These are not prefabs. Their dimensions are customizable using fields and float curves, like everything else. That being said, there’s a lot of complicated geometry work ahead to make it a one-stop shop for doors and windows.
Implemented staggered tiles, shown here with slate tiling. I was getting tired of looking at those Spanish tiles.
The bricking system makes this image rather jarring. It doesn’t yet play nice with corners and gables. There’s a lot of consider before working on it. Ideally, the next upgrade should allow things such as Dutch townhouse facades, which I have an affection for. That ought to really emphasize the versatility of the framework. But it pales in comparison to curved roofing!
I’ve been sitting on the latest updates for months. Big restructuring happened under the hood, both for performance and also to accomodate the UI, which now works. Implementing nested data types, with an indexing system that made my head spin. It can now manage multiple buildings, assigning and editing Architectures and its dependencies. No video for now. I want to address a few more performance issues, so that the UI demo is nice and smooth.
Walls really needed attention. Infills, slats and bricks were roughly implemented and are somewhat friendly with openings. I also needed to implement a new data type; Substances. For now simply manages color data.
Xray feature finally implemented. Twice in fact. A geometry xray and shader xray (Eevee compatible). Xray is calculated real time in the viewport. This, along with the Substance colors makes future debugging so much easier.
Although the UI does exist now, I’m not currently using it to create these demo images, since there’s just a few things to patch up. My eyes are cross-eyed from the 2000+ lines of python.
I am resistant toward working on the components (frames, tiles and bricks) systems, as well as the substance (UV and materials) system. In the short term, it would have the most impact. It would allow me to create finished assets. But, I don’t want to rush into it. These systems are where the rubber meets the road. There’s also a couple things I’d like to have from geometry nodes before attempting it. Bevel for one.
I’m really slack with presenting my work. Frankly the initial post is embarrassingly bad, but it is what it is. These gifs are a little more interesting to look at.
I made this splitting feature 6 months ago. Why didn’t I use it display my work sooner? Nobody knows.
Xray works both in Proprietor and Architect. The shader xray is rather cool too. The shader xray is required so that shadows are still cast by invisible walls. But, I don’t want to show it, because I haven’t implemented a bevel, so the geometry looks like trash without viewport cavities. The shader xray is a lot of fun though. Divinity: Original Sin 2 has a fantastic xray effect that would like to take inspiration from, for future upgrades.
Subarchitecture and Substructure modes.
A lot of work has gone to cleaning up Fascades. Horizontal Planking is around the corner which will allow log cabins and such. Bricking has gotten a lot of love in particular. It’s finnicky, but it’s smoothing out. Bricking system will also allow for cobblestones later.
I really wanted to implement clock gables. It really broadens the possibilities. The gable system is robust, it will allow for a lot of creativity.
UVs were overhauled and done properly, for all three data types (frames, tiles and bricks). The caps aren’t right yet and there are a few settings that are lacking. This fancy morphing is possible for all components obviously. I’m holding off from creating big fancy animations. I want to improve the workflow a little more first. Eevee Next has been quite exciting for Kabra but I’m still reluctant to display Eevee renders. There’s a few obstacles to overcome with materials first.
Happy new year. I’ve been spending some time on presentation. Cleaning up abstractions. Full disclosure, Creator is essentially a shell. Not much substantial behind it. Also, the image for Superstructures was crafted using satellite data, not generated procedurally. I put it there for continuity. Work has gone into a universal grammar for Superstructures, but it’s not close to presentation ready.
All images are composed of viewport renders.
What started as a lunatic’s ramblings three years ago, became this monster of a node. I began this .blend in Blender 3.0. I hadn’t even touched Blender for years at that point. I’d been spending my time in UI design. Sozap’s work on his Abandoned House gave me pause for thought on what Blender could now do. I could take my responsive design work and add an extra dimension to it.
As I’ve moved closer to a viable tool for (personal) production, it has become increasingly unwieldy. I do not have adequate control over evaluations to move forward. Evaluations can range from 1.5 to 6 seconds, depending on many factors. A hard-earned figure, with more optimization possible, but real-time evaluations need different prioritization. I tried splitting structures into 3 separate objects/nodes, which caused its own troubles and ruined the pipeline.
A designer needs smooth feedback in real-time when adjusting individual components. Using this tool should be the fun part but the performance makes design and debugging with Kabra nauseating. Frankly, debugging something this complex in geometry nodes isn’t fun to begin with. It’s not what it was made for. Sadly, my beautiful UI and database script I wrote gathers dust, because I couldn’t be bothered to keep updating it whenever the backend changes. So I continue to use this mile-long modifier.
I don’t know the future of Kabra at this point. Any who, finally here’s a little look at the tool used in Eevee Next with that shader xray. Looks snazzy!
Hello !
It’s a pretty cool work you did here !
I kinda get to the same conclusions as you, I find super fun to work on these gigantic projects where most of it is automated, but to me it’s more an exercise than a useful tool.
Especially when working professionally , a lot of external constraints adds up and everything can turns into a nightmare when you need to update the nodes to address a specific note from your client…
When working professionally I tend to use a very different approach, where everything is much more modular, and it relies much more on manual work.
I try to put automation where it makes sense and leave a lot of room for manual input and flexibility.
In any case, working on these gigantic projects helps a lot and everything else looks super simple in comparison !
Keep up the good work !
Thanks mate, I appreciate that.
Actually, I kinda disagree. In fact two years ago you and Joseph said it wasn’t possible. And I still disagree.
I believe Kabra already proves it’s possible. I just don’t think I can cross the finish line. I’m not an engineer / developer. If Kabra is plugged into higher simulations, like it’s designed to be, this tool could soon generate entire cities, rich in context and diversity. I think it would give SideFX Labs a run for its money. The performance and many features are already there for baking entire cities in a very respectable time.
But right now, if a designer wants to handcraft a building or architectural style… It’s not a nice experience. And if that improves, debugging also improves.
After posting yesterday I decided to look back into old techniques I’d tried. As you see, I’ve split the generator in two and unified them in a third object. I first tried this technique a year ago, and initially, it worked! It allowed me have a single object which would evaluate only 1 substructure in real time. If the other substructures shared dependant data that was changed, it would only update after unclicking, or through manual update. Easily done with drivers.
But then, later, it didn’t seem to work anymore, and I didn’t know why. I thought I must have been confused and it hadn’t worked at all. Turns out, I had later set the substructure objects and the unified object share the same mesh… So I can easily edit the mesh data from the primary object. Nice clean pipeline! But if they share the same mesh data, it forces all the substructures to re-evaluate, whether needed or not. Undoing all that extra performance I just gained. Meaning I’ll probably have to copy the mesh data over to the substructure objects with scripting too. More jank. But it’d work.
I wish there were a less janky method to achieve evaluation control. Jank creates more jank. But there is a pathway forward.
Hello !
Cool ! Well I’d be glad to be proven wrong, and in any case it’s pretty amazing what you managed to do !
It’s possible, I’m just not convinced that Blender is your best foundation for it. I think a custom C+ backend would give you much better performance. That said, I’m really impressed by what you’ve accomplished!
Diamonds are forged under pressure. Like a Saiyan, training under high gravity. Thanks mate.
That’s great, because I enjoy proving people wrong. Thanks guys.
I’ve been continually surprised there aren’t more big geometry node projects posted. I suppose many of them are company assets.
Wireframe mode or “spline mode” is another way to claw back evaluation time. Today I looked into gizmos. Sadly, it seems like you cannot instance them. It would’ve been nice to be able to place gizmos on every component, so you can edit wherever you are on the building. Maybe I could hack it through a repeat zone? Sounds inefficient.
Displaying a different window construction type here. I need to get good at shading and lighting. I have no idea what I’m doing.
Kabra Substances hasn’t had much love. Definitely possible to make shaders that procedurally make finished surfaces. But in Eevee, there’s certain limitations which stop me, namely the lack of Pointiness attribute. That edge-based data would really take things to the next level for all those finer details. Hacky AO methods has limited use, especially in this case.
Time for a change of pace. I rebuilt my system for icospheric planets, driven by equirectangular map data.
It looks as if there’s seam issues at the bottom there, but that’s just geometry/detail density. It’s seamless! I made sure of it.
The big thing was converting cylindrical mapping to icosahedral mapping.
The mapping isn’t 100% yet, there’s still a couple small issues to hammer out, then it should be pretty darn solid.
I should be able to do a lot of fun stuff with shaders. For now just a simple color ramp to make it pretty, but there’s a lot of work that can go into emulating environmental/biological stuff. I would like to do separate geometry for the oceans, which isn’t a problem technically, but I will need address z-fighting issues in the viewport first.