{{ store.width }} x {{ store.height }}

Brownian Blur

{{ item.title }}

{{ definition.value }}

In this example we simply turn off the clear call to allow allow a persistent canvas. For each step (stage.count) performs hundreds of randomly positioned points, using the random.within function.

As this function uses Math.random roughly 36k times per second, we gain a good insight to how random the random function is.

If this function was truly random the image should resolve to a pure sphere. However you may to see a persistent pattern with micro gaps (undrawn dark spots).

The gaps show the random function doesn't generate some numbers. Given the image stabilises over time (it essentially stops changing) shows the random repeats the same numbers after a certain period.

xy = random.within(point, max=.5)

Meta Data
title Brownian Blur
imports ()
files ('head', 'point', 'stage', 'mouse', 'dragging', 'stroke', '../point_src/random.js')
unused_keys ()
unknown_keys ('categories',)
categories ['brownian', 'random', 'blur']
filepath_exists True
path brownian-point-blur
filepath brownian-point-blur.js
clean_files ('../point_src/core/head.js', '../point_src/pointpen.js', '../point_src/compass.js', '../point_src/center.js', '../point_src/point-content.js', '../point_src/pointdraw.js', '../point_src/relative-xy.js', '../point_src/pointcast.js', '../point_src/point.js', '../point_src/stage-resize.js', '../point_src/functions/resolve.js', '../point_src/stage.js', '../point_src/events.js', '../point_src/automouse.js', '../point_src/functions/clamp.js', '../point_src/distances.js', '../point_src/protractor.js', '../point_src/text/beta.js', '../point_src/dragging.js', '../point_src/setunset.js', '../point_src/stroke.js', '../point_src/random.js')
Logger Install Logger {{ store.words }}
{{ store.errorText.message }}
{{ store.errorText.stackText }}