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

Generic

? 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

11 Sep, 2021 03:55 AM
10 Sep, 2021 04:25 AM
09 Sep, 2021 02:25 AM
06 Sep, 2021 07:06 PM
20 Aug, 2021 03:27 PM

 

18 Aug, 2021 11:31 AM
18 Aug, 2021 09:42 AM
30 Jul, 2021 11:35 PM
29 Jul, 2021 10:11 PM
29 Jul, 2021 10:06 PM
25 Jul, 2021 10:21 PM