IKLECTIK [off-site] presents,

MUSLAB 2020 - video screening session and live performances

VIDEO SCREENING:

Yuanyuan, HE Love YOU ... niverse_Kay HE

Otto Castro, Resonancia Liminal Guatemalteca

PERFORMANCE:

Dave Webb

on&off

starting very soon

> René Lozi. "Can we trust in numerical computations of chaotic solutions of dynamical systems?". World Scientific Series on Nonlinear Science, World Scientific, 2013, Topology and Dynamics of Chaos

In Celebration of Robert Gilmore’s 70th Birthday, 84, pp.63-98. 10.1142/9789814434867_0004 . hal-

00682818 HAL Id: hal-00682818 https://hal.archives-ouvertes.fr/hal-00682818

#AmReading slowly as it's quite long (42 pages)

Worked on this a bit more today.

The "strict" content blocking thing was herring, just a regular race condition bug between etherpad startup and async barry loading. Tried to fix it by saving messages in an array that gets flushed when barry is fully loaded, but somehow something doesn't work properly and loading a pad gives the wrong sound until one of the connected clients reevaluates all the proper code. Need to look into what etherpad does with chat messages on page load, maybe its different to regular chat messages.

Made `ep_barry` into a proper etherpad plugin (no patches to core etherpad needed any more), there are some weird issues still about `node_modules` search order for `require()` which I assume are due to the plugin not being published yet and being installed with a relative path.

Added a `SR` word to the interpreter which gets the engine sample rate (which may be different for different clients) so that BAZ code can adapt gracefully and still sound the same (pitch and tempo are dependent on sample rate in typical bytebeat code). It's mutable though, so bad clients can overwrite it and mess up the whole pad for everyone. Maybe I can fix that in the engine somehow.

I feel like I must have been depressed over the winter because it's the only reason that I can imagine for not submitting a proposal to #AMRO. It is the best conference. It's online this year: https://radical-openness.org

After adding the shader, diagonal lines are smooth, and axis aligned edges are not jittery (this is not so visible in this particular excerpt).

Show thread

Before adding the shader, diagonal lines are ugly, especially when animated, and axis-aligned edges are jittery.

Show thread

Added a #GLSL #shader to my autonomous #audiovisual piece #Puzzle (implemented in #PureData #Pd with #Gem for #OpenGL), to make the very edges of the tiles fade to transparent. Otherwise the width of the black border jitters very distractingly as the tiles move, because the rasterization is quantized and the texture coordinates are not. As a bonus it makes diagonal lines smoother too.

```

uniform sampler2D tex;

void main (void)

{

vec2 coord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;

vec4 colour = texture2D(tex, coord) * gl_Color;

float d = length(vec4(dFdx(coord), dFdy(coord))) * sqrt(2.0);

colour.a

= smoothstep(0.0, d, coord.x)

* smoothstep(0.0, d, 1.0 - coord.x)

* smoothstep(0.0, d, coord.y)

* smoothstep(0.0, d, 1.0 - coord.y)

;

gl_FragColor = colour;

}

```

Videos coming up next.

Managed to get a lightly modified #Etherpad working with my #Barry interpreter for #collaborative #LiveCoding of #PostFix #ByteBeat #audio.

It's implemented as a bit of hack modifying the core template pad.html at present, but it should be possible to port it to a standalone Etherpad plugin - I was just fighting with npm and node and require() and things I don't understand at all so took an easier way out.

Firefox's "strict" content blocking mode breaks it. Not sure why.

Worked a bit on my interactive rhythmic/pitched noise thing `disco/designer`

https://mathr.co.uk/disco/designer

The black squares have white dots in the middle so the grid is always visible which makes interaction easier.

New CSS scales the grid to be a nice size in the viewport.

Added icon and more metadata.

This one works fine on my tablet, the algorithm is very cheap to compute (Haar wavelets).

Worked a bit on my drone piece Harmonic Protocol. Web version now has a nice graphical interface for parameter selection.

https://mathr.co.uk/harmonic-protocol/

But: it seems to use too much CPU power.

On my android tablet even the second ring out from the center struggles a bit, the outer three rings are hopeless (constant clicks/stuttering).

On powerful desktop the outer-most ring in Firefox uses about 30% of 1 core, and inner-most ring about 10% (I didn't disable CPU frequency scaling, so the numbers aren't directly comparable).

The natively compiled version is about 3x more CPU efficient than the web version on my desktop.

Would be grateful if you can try it and report any success/failure along with your device specs.

report from ASUS ZenPad 10 P00C android tablet:

processor: AArch64 Processor rev 3 (aarch64) mt8163; Max: 1300.0 MHz; Min: 600.0 MHz (as found online, didn't figure out how to read this information from the device)

innermost two rings in Chrome use less than 100% of a CPU core (sound is ok)

outermost three rings in Chrome use more than 100% of a CPU core (stuttering clicks)

report from desktop `eiskaffee`:

processor: AMD Ryzen 7 2700X Eight-Core Processor

(note: appears to Linux as 16 threads)

innermost ring, firefox uses 13% of a CPU core at 2.2GHz

outermost ring, firefox uses 33% of a CPU core at 3.2GHz

innermost ring, native uses 3% of a CPU core at 2.2GHz

outermost ring, native uses 9% of a CPU core at 2.2GHz

report from laptop `latte`:

processor: Intel(R) Core(TM)2 Duo CPU P7550 @ 2.26GHz

innermost ring, firefox uses 30% of a CPU core at 1.2GHz

outermost ring, firefox uses 68% of a CPU core at 1.8GHz

innermost ring, native uses 13% of a CPU core at 1.0GHz

outermost ring, native uses 27% of a CPU core at 1.2GHz

Worked a bit on my drone piece Harmonic Protocol. Web version now has a nice graphical interface for parameter selection.

https://mathr.co.uk/harmonic-protocol/

But: it seems to use too much CPU power.

On my android tablet even the second ring out from the center struggles a bit, the outer three rings are hopeless (constant clicks/stuttering).

On powerful desktop the outer-most ring in Firefox uses about 30% of 1 core, and inner-most ring about 10% (I didn't disable CPU frequency scaling, so the numbers aren't directly comparable).

The natively compiled version is about 3x more CPU efficient than the web version on my desktop.

Would be grateful if you can try it and report any success/failure along with your device specs.

When neither of those two cases apply the Jacobian determinant is (p r^(p-1))^3 sin(p phi) r / sqrt(x^2+y^2) where distributionally speaking (*waves hands*) the sin(p phi) r / sqrt(x^2+y^2) factor must be O(1) in magnitude, because (x,y) is not close to 0, sin(p phi) is not close to 0, and r is at least 1 or so (because by ray marching assumption it is outside the Mandelbulb).

Moreover the triplex (x,y,z)^p itself in this regime is (*waves hands*) close to conformal, because it is far from the singularities.

Apply cube root to get 1D scale factor and you get dr := p r^(p-1) dr again, which is why the Mandelbulb analytic DE works just fine without Jacobians.

2/2

Thinking about power p #Mandelbulb #DistanceEstimate. There is a long history of just using the 1/2 |z| log |z| / |z'| formula that is justified by complex dynamics theory (Koebe 1/4 theorem etc) for the 2D Mandelbrot set and just plugging it into non-conformal 3D "triplex" arithmetic, without using a Jacobian matrix. It has even been found that using a Jacobian matrix is harmful, due to excess stretching.

Case (x,y) -> (0,0) at iteration n, r = sqrt(x^2+y^2+z^2) = |z| and it depends on r<>1 whether it will go to infinity (exterior) or 0 (interior) like (0,0,r^p^k) at iteration n+k, which is locally like r->r^p in 1 dimension so the scalar dr := p r^{p-1} dr update is justified.

Case sin(n phi) -> 0 at iteration n,, at the very next iteration (x,y)->(0,0) and z-> r^p and then the previous case applies. This step is also like r->r^p in one dimension, so the scalar dr := p r^(p-1) dr update is justified.

1/2

https://mathr.co.uk/blog/2020-04-28_shut_down_as_a_service.html

> a systemd service unit that shuts down the computer as soon as it has booted up

Finally found a copy of the "hairiness" paper that I've been searching for for some time, hadn't realize it had been reprinted in

> COLLECTED PAPERS OF JOHN

MILNOR

> VI Dynamical Systems (1953-2000)

Araceli Bonifant (editor)

> American Mathematical Society

> Providence, Rhode Island

so #AmReading

> #SelfSimilarity and hairiness in the #Mandelbrot set (1989)

Which has some very nice diagrams and discussion about some things I stumbled across too over the years (my GIF is part of a collection of similar-but-different zoom loops)

Iterated tuning for generalized #Feigenbaum points, among other things. Just skimmed bits of it so far, should keep me busy.

making art with maths and algorithms

Joined May 2018