Profile cover photo
Profile photo
Abdelaziz Nait Merzouk
139 followers
139 followers
About
Posts

Post has attachment
Partitioning with functions

How to partition a domain into N subsets when there is no distance-like functions available?

When we have a distance function there are algorithms like k-means to do the job. When the is no distance function available but only adjacency information between elements of the domain , for example a graph, the problem is less "straightforward". In that case, there are algorithms that use so called "sparsity inducing norms"... So no originality claimed here.

Domain partitioning is useful for the "aggregation algebraic multigrid" method among others.

My approach simplistic in the way it was devised, and the numerical algorithms used. I was amazed to see that it works and how it works. It is inspired by "reaction diffusion" systems. Here the number of "substances" is equal to the number of partitions we want. Each substance is modelled as a function. Each one diffuses in the domain and at each point of the domain the value of the function that is the biggest is amplified in a non linear way while the others are weakened more. I also require that the "size" of each domain be fixed (here 1/nth of the "size" of the domain) and that the sum of all functions at each point be 1 (partition of unity).

The amplification/weakening function is :
f_i = (f_i/mean)^pushPower

The power parameter is called pushPower simply because it makes the domains push against each others.

The functions that are obtained have a lot of remarkable properties. They look much like soap bubbles. :)

A little video showing my little #evaldraw script at action.
(Screen capture done with the free version #fraps which is limited to 1mn)
https://www.youtube.com/watch?v=fOaxjL8hhyg
Add a comment...

Post has shared content
Shadertoy
Shadertoy
shadertoy.com

Post has shared content

Post has shared content
Cut and project
Turning the Cutting plane into a curved surface

The cut and project method was invented by de Bruijn In order to draw aperiodic tilings. In this method, roughly speaking, one "cuts" a n- dimensional lattice by a plane and projects the result on it.
In fact, the cutting plane doesn't need to be the same as the projection one. It can even be non planar but curved. I've written a little evaldraw script to draw such tilings. In this script the cutting surface is just a plane perturbed by a gaussian function in one of the perpendicular directions. The tilings that are obtained are just like regular aperiodic tilings with local perturbation. No pictures because it is best seen when moving the perturbation interactively.

The script in question is: https://drive.google.com/open?id=1k3HHM1AVbnmePR5owtWrt4biC7z5ppiI

Just because it is better to have a picture in the post, here are the aperiodic tilings obtained from a 7 and 15 dimensional lattices. These were generated by this script: https://drive.google.com/open?id=1b6OUie0rLkm6L6zRqpl7sUP9ZbxYJF5-
Unlike the first script, this one draws the tiling pixel by pixel: for each pixel it determines which tile it belongs to.
Photo
Photo
24/04/2018
2 Photos - View album
Add a comment...

Post has shared content
Cut and project
* Video: Turning the cutting plane into a curved surface*

Ok, here is a video :)
https://drive.google.com/open?id=1bo0m9RP5hWU426eoDkWTlZp-5WWGL_t5
Add a comment...

Post has attachment
Cut and project
* Video: Turning the cutting plane into a curved surface*

Ok, here is a video :)
https://drive.google.com/open?id=1bo0m9RP5hWU426eoDkWTlZp-5WWGL_t5

Post has attachment
Cut and project
Turning the Cutting plane into a curved surface

The cut and project method was invented by de Bruijn In order to draw aperiodic tilings. In this method, roughly speaking, one "cuts" a n- dimensional lattice by a plane and projects the result on it.
In fact, the cutting plane doesn't need to be the same as the projection one. It can even be non planar but curved. I've written a little evaldraw script to draw such tilings. In this script the cutting surface is just a plane perturbed by a gaussian function in one of the perpendicular directions. The tilings that are obtained are just like regular aperiodic tilings with local perturbation. No pictures because it is best seen when moving the perturbation interactively.

The script in question is: https://drive.google.com/open?id=1k3HHM1AVbnmePR5owtWrt4biC7z5ppiI

Just because it is better to have a picture in the post, here are the aperiodic tilings obtained from a 7 and 15 dimensional lattices. These were generated by this script: https://drive.google.com/open?id=1b6OUie0rLkm6L6zRqpl7sUP9ZbxYJF5-
Unlike the first script, this one draws the tiling pixel by pixel: for each pixel it determines which tile it belongs to.
Photo
Photo
24/04/2018
2 Photos - View album

Post has attachment
Amman-Beenker tiling

An easy adaptation of my previous shader.

https://www.shadertoy.com/view/MddfzH
Shadertoy
Shadertoy
shadertoy.com
Add a comment...

Post has attachment
Cut and project

Drawing quasi-periodic tiling on the GPU.
Shadertoy: https://www.shadertoy.com/view/XdtBzH
fragmentarium: https://drive.google.com/file/d/1zjA5BA1q6c3xhIL9twQl1IFOb6z3PCFA/view

Shadertoy
Shadertoy
shadertoy.com
Add a comment...

Post has shared content
My talk in Nantes last October only came online just now.
Add a comment...
Wait while more posts are being loaded