I'm having a hard time interpreting the claims found in Ken Perlin's patent for simplex noise. It seems that if I do not use the same method of hashing indicies that he used, I'm not violating claim 1. Claim 2->6 on the other hand seems very broad, it seems the very idea of using simplexes at all in any procedural noise generation would violate the patent claim on 2 -> 6, especially number 5:

producing the images with texture that do not have visible grid artifacts with the computer by decomposing a hypercube into n! simplices, where each simplex corresponds to

an ordering of an edge traversal of the hypercube from its lowest vertex (0,0, . . . , 0) to its upper vertex (1,1 . . . , 1), where n is greater than or equal to 3 and is an integer; and displaying the images on a display.

Which to me reads, "You can't use simplexes for any dimension above 2 when generating noise". I'm not sure how OpenSimplex Noise gets away with this because despite using a different method of simplex generation, it is still actually using simplex decomposition and hypercubes.

migrated from law.stackexchange.com Oct 14 '17 at 15:59

This question came from our site for legal professionals, students, and others with experience or interest in law.


Unfortunately this isn't my field so I'll only give general guidance. US6867776 is indeed a granted patent which should expire on Jan 10, 2021. In order to infringe on a patent you must infringe on each and every step of at least one claim. Thus even if one of the steps of a claim is a problem, so long as there is another step that you don't implement, you shouldn't infringe on the claim.

As for OpenSimplex Noise, I can only guess that they circumvent the claims of US6867776 sufficiently. From the cited Wikipedia article:

The algorithm shares numerous similarities with Simplex noise, but has two primary differences:

  • Whereas Simplex noise starts with a Hypercubic honeycomb and squashes it down the main diagonal in order to form its grid structure, OpenSimplex noise instead swaps the skew and inverse-skew factors and uses a stretched hypercubic honeycomb. The stretched hypercubic honeycomb becomes a Simplectic honeycomb after subdivision. This means that 2D Simplex and 2D OpenSimplex both use different orientations of the Triangular tiling, but whereas 3D Simplex uses the Tetragonal disphenoid honeycomb, 3D OpenSimplex uses the Tetrahedral-octahedral honeycomb.
  • OpenSimplex noise uses a larger kernel size than Simplex noise. The result is a smoother appearance at the cost of performance, as additional vertices need to be determined and factored into each evaluation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.