forked from latticexyz/mud
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
54 changed files
with
2,112 additions
and
900 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
node_modules | ||
.env | ||
coverage | ||
coverage.json | ||
|
||
#Hardhat files | ||
cache | ||
artifacts | ||
|
||
|
||
node_modules | ||
.env | ||
coverage | ||
coverage.json | ||
|
||
#Hardhat files | ||
cache | ||
artifacts | ||
|
||
yarn-error.log | ||
|
||
out | ||
dist | ||
build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
* | ||
|
||
!ts/** | ||
!dist/** | ||
!build/** | ||
!contracts/** | ||
!out/** | ||
!assembly/** | ||
!package.json | ||
!README.md | ||
!CHANGELOG.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Noise | ||
|
||
Matching Perlin noise implementations in Solidity and AssemblyScript |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
{ | ||
"targets": { | ||
"debug": { | ||
"outFile": "build/debug.wasm", | ||
"textFile": "build/debug.wat", | ||
"sourceMap": true, | ||
"debug": true | ||
}, | ||
"release": { | ||
"outFile": "build/release.wasm", | ||
"textFile": "build/release.wat", | ||
"sourceMap": true, | ||
"optimizeLevel": 3, | ||
"shrinkLevel": 0, | ||
"converge": false, | ||
"noAssert": false | ||
} | ||
}, | ||
"options": { | ||
"bindings": "esm" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
export { perlin } from "./perlin"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
// Ported from perlin reference implementation (https://cs.nyu.edu/~perlin/noise/) | ||
|
||
export function perlin(_x: i32, _y: i32, _z: i32, denom: i32): f64 { | ||
// Convert fraction into f64 | ||
let x: f64 = f64(_x) / f64(denom); | ||
let y: f64 = f64(_y) / f64(denom); | ||
let z: f64 = f64(_z) / f64(denom); | ||
|
||
// Find unit cube that contains point | ||
const X: i32 = i32(Math.floor(x)) & 255; | ||
const Y: i32 = i32(Math.floor(y)) & 255; | ||
const Z: i32 = i32(Math.floor(z)) & 255; | ||
|
||
// Find relative x,y,z of point in cube | ||
x -= Math.floor(x); | ||
y -= Math.floor(y); | ||
z -= Math.floor(z); | ||
|
||
// Compute fade curves for each x,y,z | ||
const u: f64 = fade(x); | ||
const v: f64 = fade(y); | ||
const w: f64 = fade(z); | ||
|
||
// Hash coordinates of the 8 cube corners | ||
const A: i32 = p[X] + Y; | ||
const AA: i32 = p[A] + Z; | ||
const AB: i32 = p[A + 1] + Z; | ||
const B: i32 = p[X + 1] + Y; | ||
const BA: i32 = p[B] + Z; | ||
const BB: i32 = p[B + 1] + Z; | ||
|
||
// Add blended results from 8 corners of cube | ||
const r: f64 = lerp( | ||
w, | ||
lerp( | ||
v, | ||
lerp(u, grad(p[AA], x, y, z), grad(p[BA], x - 1, y, z)), | ||
lerp(u, grad(p[AB], x, y - 1, z), grad(p[BB], x - 1, y - 1, z)), | ||
), | ||
lerp( | ||
v, | ||
lerp(u, grad(p[AA + 1], x, y, z - 1), grad(p[BA + 1], x - 1, y, z - 1)), | ||
lerp(u, grad(p[AB + 1], x, y - 1, z - 1), grad(p[BB + 1], x - 1, y - 1, z - 1)), | ||
), | ||
); | ||
|
||
// Shift to range from 0 to 1 | ||
return (r + 1) / 2; | ||
} | ||
|
||
function fade(t: f64): f64 { | ||
return t * t * t * (t * (t * 6 - 15) + 10); | ||
} | ||
|
||
function lerp(t: f64, a: f64, b: f64): f64 { | ||
return a + t * (b - a); | ||
} | ||
|
||
function grad(hash: i32, x: f64, y: f64, z: f64): f64 { | ||
switch (hash & 0xf) { | ||
case 0x0: | ||
return x + y; | ||
case 0x1: | ||
return -x + y; | ||
case 0x2: | ||
return x - y; | ||
case 0x3: | ||
return -x - y; | ||
case 0x4: | ||
return x + z; | ||
case 0x5: | ||
return -x + z; | ||
case 0x6: | ||
return x - z; | ||
case 0x7: | ||
return -x - z; | ||
case 0x8: | ||
return y + z; | ||
case 0x9: | ||
return -y + z; | ||
case 0xa: | ||
return y - z; | ||
case 0xb: | ||
return -y - z; | ||
case 0xc: | ||
return y + x; | ||
case 0xd: | ||
return -y + z; | ||
case 0xe: | ||
return y - x; | ||
case 0xf: | ||
return -y - z; | ||
default: | ||
return 0; // never happens | ||
} | ||
} | ||
|
||
const p: i32[] = [ | ||
151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, | ||
10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, | ||
56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, | ||
122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, | ||
76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, | ||
226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, | ||
223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, | ||
108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, | ||
162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, | ||
45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180, 151, | ||
160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, | ||
23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, | ||
87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, | ||
60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, | ||
132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, | ||
250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, | ||
183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, | ||
110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, | ||
241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, | ||
127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180, | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
"extends": "assemblyscript/std/assembly.json", | ||
"include": ["./**/*.ts"] | ||
} |
Binary file not shown.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.