Skip to content

Fix Inaccuracies in noise() Documentation Regarding Perlin Noise vs Value Noise #591

Open
@SableRaf

Description

Select the type of content error.

Factual Mistake

Section

Reference

Location of the error

https://processing.org/reference/noise_.html

Describe the error

This issue is a follow-up to this comment in the p5.js repository.

The current noise() documentation states in multiple places that the function implements Perlin noise. However, this is inaccurate. Processing actually uses a form of value noise, originally ported by Karsten Schmidt from the demo "Art" by the German demoscene group Farbrausch.

This issue was discussed back in 2014, and as a result, the following line was added to the documentation:

There have been debates over the accuracy of the implementation of noise in Processing. For clarification, it's an implementation of "classic Perlin noise" from 1983, and not the newer "simplex noise" method from 2001.

However, this addition did not address the actual inaccuracy, which is that Processing's implementation uses value noise, not Perlin noise. In fact, it reinforces the prior misleading statements.

Suggested correction

I suggest editing the inline JavaDoc in PApplet.java here to add something like the following.

The noise() function is similar to "Perlin noise," a popular technique for for generating smooth, random-like patterns, invented by Ken Perlin while animating the original Tron film in the 1980s. Note that noise() is not an exact implementation of Perlin noise, but belongs to a category called "value noise." which has slightly different properties.

The rest of the documentation page could be similarly edited to focus more on practical use, possibly taking inspiration from the p5.js version.

Related discussions

In processing/processing: Real Perlin noise would be nice #2549
In processing/processing-docs: Perlin noise documentation #51
In processing/processing-web-archive: Perlin noise documentation #423
In processing/p5.js: Code improvements of the Perlin noise generator. #875

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions