Abdelaziz Nait Merzouk

139 followers

139 followers

Communities and Collections

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

**Amman-Beenker tiling**

An easy adaptation of my previous shader.

https://www.shadertoy.com/view/MddfzH

Post has shared content

**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

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.

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.

24/04/2018

2 Photos - View album

Post has attachment

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

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