Archived post by trzanko

here’s a simple example of a 2d wfc running on points in houdini ( have yet to expand to 3d )

it pretty much comes down to: you can only be what your neighbors say you can be, and whoever has the least amount of options, randomly select from it’s choices based on probability and set yourself, then repeat

it doesn’t matter what the deformation is on the tiles

you could do it on any volume of points with clean connectivity

if you can do a neighbour lookup, it doesn’t matter what the tiles are, though it becomes a bit weirder because what you put in those tiles has to deform to that tile’s space

imo wfc is one of the best candidates for some super cool procedural stuff

would love to have a sec to explore this more or on a project, this sketch is from last year which is the last time we talked about it i think

maxim’s stuff is what inspired this sketch

oskar’s implementation is way way sexier because it’s dynamic and interactive

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20194308/24/19/tr_wfc_v4.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20194308/24/19/tr_wfc_v4.hip

Archived post by art3mis

Really getting a lot from this lengthy Vellum Cell Replication tutorial. The title a bit misleading since less than a third focuses on vellum. The majority is about preparing geometry as well as sharing useful Vexpressions and techniques. Would have paid for this. https://www.youtube.com/watch?v=qzj9Sr_x0Lk

Archived post by cakesson

class GifPlayer(PySide.QtGui.QWidget): def __init__(self, gifFile, parent=None): PySide.QtGui.QWidget.__init__(self, parent) self._gif = gifFile # set up the movie screen on a label self.movie_screen = PySide.QtGui.QLabel() # expand and center the label # self.movie_screen.setSizePolicy(PySide.QtGui.QSizePolicy.Expanding, # PySide.QtGui.QSizePolicy.Expanding) # self.movie_screen.setAlignment(PySide.QtCore.Qt.AlignCenter) main_layout = PySide.QtGui.QVBoxLayout() main_layout.addWidget(self.movie_screen) self.setLayout(main_layout) # use an animated gif file you have in the working folder # or give the full file path self.movie = PySide.QtGui.QMovie(self._gif, PySide.QtCore.QByteArray(), self) self.movie.setCacheMode(PySide.QtGui.QMovie.CacheAll) self.movie.setSpeed(100) self.movie_screen.setMovie(self.movie) self.movie.start()

We used to have a gif fail player show up on export failures 😃