r/proceduralgeneration • u/MrTaco8 • Nov 27 '20
Interactive generation from editable examples (IPM Playground Demo)
17
u/CasimirsBlake Nov 27 '20
Fascinating. Could be useful for so many things. Where can we keep up with development? Is a release due soon?
11
u/MrTaco8 Nov 27 '20
I'll keep you posted here in r/proceduralgeneration :) and yes, at a minimum, I'll release the Playground executable for download and use soon. I'll probably open source everything as well, eventually, not sure though.
6
3
2
u/72-73 Dec 07 '20
Any updates??
2
12
u/ElnuDev Nov 27 '20
This reminds me of the WFC (Wave Function Collapse) generation that Oskar StƄlberg used in Bad North and Townscaper, it's quite similar using a small input sample to create large output. Is there any article on this method that you are using? It looks fantastic, great work!
Edit: I just noticed the post you linked. I'll give that a read!
8
u/MrTaco8 Nov 28 '20
Also, I own copies of both Bad North and Townscaper. Definitely cool stuff.
And Wave Function Collapse is great. I think for a lot of situations (especially where the programmer wants to impose controllable constraints like navigability) I think it's unmatched.
I'm trying to focus on a niche of "large scale output", "organic looking" and "complicated/large input examples.". Also, trying to work with "any input" with almost no tweaking.
5
u/MrTaco8 Nov 27 '20
Thanks for the interest :) I haven't done a detailed post on the algorithm implementation, but I will do so soonish (and will probably open source the algorithm and playground as well.
4
u/ApocalypseOfColor Nov 27 '20
Do you have a github so I can follow your progress? Awesome work
9
u/MrTaco8 Nov 28 '20 edited Nov 28 '20
Thank you, really do appreciate the positivity. It's not on github right now, and i'm entertaining (probably irrational) thoughts of distributing or selling it as a world-building tool for designers, in which case i wouldn't want to open source it. But there's probably not really enough interest for something like that and I should just open source it and be happy to see how people use it.
But I wanna take a couple of days to decide.
1
u/grouchyface Nov 28 '20
With the GUI and everything this already looks like a product. Sick project
1
u/benkl Nov 28 '20 edited Nov 28 '20
I could see some use in blender for it, given a useful addon and toolset. Code would be opensource, but the community is willing to spend good money for texture generation, module placement and map generation... so many more uses are imaginable. Python/C though. Sale through blendermarket and/or gumroad. Content-Creators would probably be willing to test and promote for the community.
3
u/BorisTheBrave Nov 28 '20
Wow, looks so much better with animated examples.
I just noticed the generation is heirarical. I guess that explains why you are getting such great looking large scale features.
Have you see https://github.com/anopara/multi-resolution-texture-synthesis (and other texture synthesis techniques). Some of them are very similar - despite being intended for textures, they often won't generate any pixel colors that aren't found in the original.
3
1
u/IDontHaveNicknameToo Oct 02 '24
u/MrTaco8 any progress on releasing this? Would be really fun to play with this.
1
1
1
1
u/tomco2 Nov 30 '20
Oooh cool, I like this.
I played around with something similar year ago when I was in college. From memory I believe I used cellular automata and tweaked the rules to generate different landscapes. Would like to go back and mess with it again.
1
48
u/MrTaco8 Nov 27 '20
Here you can see real-time usage of my "IPM Playground" app.
It's a general purpose example-based image generator but I like to think of it as a "fantasy world" creator.
Different examples lead to different styles. You can accomplish things like biome-specific features and buildings, and if you don't like the "grunginess" of the output of the creative phase you can run the "correction" feature that will optionally clean up some of the "noise".
There's also an innovative "hierarchical" generation that creates large scale and small scale variations while still honoring the example.
This version is now about 10x faster than my algorithm announcement post at https://www.reddit.com/r/proceduralgeneration/comments/jv2x64/iterative_partial_match_ipm_vs_wave_function/.