Randomness in NodeBox OpenGL

zahar othman's Avatar

zahar othman

26 Jun, 2014 08:59 AM

Convert few codes from NodeBox 1 examples in Mac to NodeBox OpenGL for my students as most of them use Windows version.

What I notice is that whenever a random command is issued inside the draw method.

say for example: strokewidth(random(1,5))
or any command using random

In Window when the canvas.run(draw) is issued , what being displayed is a blinking screen where the random values keep on changing. This will make random function ineffective inside the draw method. Is it a bug of the run loop?

  1. 1 Posted by Stuart Axon on 16 Nov, 2015 10:28 AM

    Stuart Axon's Avatar

    Hopefully this late reply will be useful to someone else...

    If you want to keep the same random value every time you draw a frame, calculate it outside the draw loop, then reuse the same value.

  2. Support Staff 2 Posted by Frederik De Ble... on 15 Dec, 2015 01:17 PM

    Frederik De Bleser's Avatar

    Randomness in software is tricky. Since the code is executed every frame, and random returns a different value every time it is called, the result will be different for every frame.

    There are two solutions to this:

    1. Pre-calculate the values: that is, they should be random at initialization time (every time the program runs), not for every frame.
    2. Use a random seed. Use from random import seed at the top, then in your draw loop, set the seed to a fixed value, like seed(42). Random numbers are not really random, but depend on this seed to generate a series of random values. The same seed always calculates the same series. So by "locking" the seed to a fixed value in the draw call, we can make sure that the values will not change per-frame.

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:


Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

31 Jan, 2023 11:29 PM
28 Jan, 2023 10:39 AM
26 Jan, 2023 01:30 AM
26 Jan, 2023 01:24 AM
26 Jan, 2023 12:48 AM


20 Jan, 2023 02:32 PM
13 Jan, 2023 09:54 PM
11 Jan, 2023 10:32 AM
09 Jan, 2023 11:45 AM
28 Dec, 2022 11:19 PM
27 Dec, 2022 06:57 AM