This file contains hidden or 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
const src = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAAHCAAAAABmCOEJAAAACXBIWXMAAAsTAAALEwEAmpwYAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBFTAyMHy7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BSMDVQYqg4jIKAUICxE+CDEESC4tKoMHJQODAIMCgwGDA0MAQyJDPcMChqMMbxjFGV0YSxlXMN5jEmMKYprAdIFZmDmSeSHzGxZLlg6WW6x6rK2s99gs2aaxfWMPZ9/NocTRxfGFM5HzApcj1xZuTe4FPFI8U3mFeCfxCfNN45fhXyygI7BD0FXwilCq0A/hXhEVkb2i4aJfxCaJG4lfkaiQlJM8JpUvLS19QqZMVl32llyfvIv8H4WtioVKekpvldeqFKiaqP5UO6jepRGqqaT5QeuA9iSdVF0rPUG9V/pHDBYY1hrFGNuayJsym740u2C+02KJ5QSrOutcmzjbQDtXe2sHY0cdJzVnJRcFV3k3BXdlD3VPXS8Tbxsfd99gvwT//ID6wIlBS4N3hVwMfRnOFCEXaRUVEV0RMzN2T9yDBLZE3aSw5IaUNak30zkyLDIzs+ZmX8xlz7PPryjYVPiuWLskq3RV2ZsK/cqSql01jLVedVPrHzbqNdU0n22VaytsP9op3VXUfbpXta+x/+5Em0mzJ/+dGj/t8AyNmf2zvs9JmHt6vvmCpYtEFrcu+bYsc/m9lSGrTq9xWbtvveW |
This file contains hidden or 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
KSzZ2xDCZo15X5Vxzwhl3FLPQ_lzzTml3O-I6XT-s63X-Qb5F3zTvl3gLPGXeV_wwfn_L3fC-b5fU-r7fv-D--jq-m9H5-ng_16-ZelH-_K4nDLvL_Bzi8SZ5JwvdWeE9rplnVLvvWeot8i7ne-Gc5y4i8qcoee_L3lnxLvlXeUv86_n5-e-H_-FSXeyu8j__p6z3UX5NvP_9VxzwhfX8Dkfp8Tml3OLPi_10zwqff9Dtfy9TvfD_jyF5V5PPXen_D2f5_T4fL-j6lX3Lzw8fvv8x-fGuzTdl38KP_VeF8whfXs8AZ5lzzTmf7s8I6XTLPrWeftIP0GkXcLzTvl3gLPG-V5zwwl3pLPYXe5u8E_3zLPq-19g8Mf59_i8x--Uw-J--D2_C3n6_m3H-_K4nDLvL_BzvU_Jwi82Z5R0vm_Z1vvGkHa-i7ne-G8Hj-q8nn-O9HsLvc-J8zb5fU-r7F5Z_v3Hk-I-i82--0yvzWe1vI-5ZfYr8CX5puv59yvzrgfOsIvL_BzvUWknM-2Z5R0vmWknVDz7rF5h2zLulne-Gc5y4zrzlnn-Od5B7zL3lnx-W_H1LvuXem-XY-X_-D5f_my_eW5hti8CX5puv5VkH-KvC_5xg8u4HIDzLlfzs825HRLvm_Z1vv_h2zLuf6t8G8HjLvK-55vT-B7vc-J8vlXeU-r7ln5-e-H_-we9ZsvnVkH2_C3n6Czbef8r8K4nDLz7inZegs8SZ5JwvdWeE9rpn5Z1vvWeo9Lulne-Gc5y4zrzlnn-Od5B7zL3fCv8W_H1-6eRemPIv3TkH_-nRW_GtSve9Zsz7ZfY7LcF5puv59yvzrgfO87ifg8Llfzs825HR-a6nVLvv_h2zLuf69bxfMu8q8nnLvT-B7zL3fCv8W_H1Lzr7fm-79f4-PXV6Rrve9ZsvnVeYr8C3n6_mX5yvvCWeOs8uY5BzzLlfzs82Z5R0vmWeW97rlHaLv4We6t8Gc5y4vKXeeu8O9HsLvc-J8zb5lH1Dzr7ln5L |
This file contains hidden or 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
KSKkMhIE7eo2t4up3NYvbKdbqbcdrsnbv7uJ5tNvR6tWvh81i_m23G-G73q-m-3wgumSvpecdrsnbv7uJ5tNfk_a9GzXL6r5-9EnrF0NleT946WZP3e3dTzbb_I916V73oh810_243Y-W9P-vnvcNcuF0TpbTdjrbldwtb3dNJvt5j0XrXNbjGz30_24P2vV-90kbv8x5F0t7umkXbwHpvWvGz30_24P2v5-dLrbg-Fpu919ojbm8e5hwNluV2N3i2dXDxolY0k8ab_I916NkvFdNtvN_N2rV-18-eSytOuZz7lrF0tzu2dXTzrt5j0Xr3Q_m23Y-a1f18-PSdfx8PLcjiXH3M52LRDnbKdbqbld7ubSebwHp3a9Gz3G-asfVr_n-3TButxjiXH3e5aBdTp3U3K7mk328R6NkvF9b8bs-q-m-3t0-S4v3vHCcbhHF3M5GO3C6p0bqbldwtbJeTz3m3_9Gz3i_W9P-vPm-nPu2QPxfpffE42C3e5GOPleTdrsbAeLynk3s92vPkfRfj9X9P-vPgEtdeE9C-_4wfO3mA3M5avcNluy1t7uB4tEv16Nbv97Nkvp9b8bs-q-uEytPuWNXbo7yF325u5ttwtJxtFuRyrjnJXbqb-eD5n2vyvy_N--oU3jqt5t7cbCcbhHFvOemcN3e39_9GzPtfjfr_n-3Hru_A11s-_xstqde7O3aCcbhbUcrjrZz1epa4UtgqmSXrsnb3k82mXj0b-eD5n2P2f_ffe-G_-R_-MsNmdV78WqduVTgaBVjrrV2tEvJ5128a-eD5X0vyf_fXS-m9-49vprthdM7q25tV7crJxtFuRytOuZzNcuF0tpuqy11A8WiXTzbbGNSv971Q_p9b8bs-q-5-9MWnu2G2ysrar5t1OnW_2E4txjiXH3e5GOvguNVtNvGp3_9qF9T7bj-Y-V-N-vPz8NUdy6012xOmdVb7caxbLfbCcbhbUcrjamc7lb4cLobKdbqbcdtzimbXt7iGgXLyrJ5128R6Nb |
This file contains hidden or 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
ffmpeg -r 60 -i %07d.png -c:v libx264 -vf fps=60 -crf 4 -preset slow -pix_fmt yuv420p out.mp4 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or 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
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8" /> | |
<title>WebGL NFT</title> | |
<meta | |
name="viewport" | |
content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" | |
/> | |
<meta property="og:image" content="thumbnail.png" /> |
This file contains hidden or 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
// Keep the tab busy with audio. | |
const audioCtx = new AudioContext(); | |
const gainNode = audioCtx.createGain(); | |
gainNode.gain.value = 0.1; | |
gainNode.connect(audioCtx.destination); | |
const oscillatorNode = audioCtx.createOscillator(); | |
oscillatorNode.type = "square"; |
This file contains hidden or 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
// superellipse / Lam茅 curve | |
// https://en.wikipedia.org/wiki/Superellipse | |
const a = 0.4; // semi-diameter | |
const b = 0.4; // semi-diameter | |
const n = 1.5; // curve (<1, 1-2, >2) | |
const c = Math.cos(gamma); // gamma 0-2蟺 | |
const s = Math.sin(gamma); // gamma 0-2蟺 | |
const x = Math.pow(Math.abs(c), 2 / n) * a * Math.sign(c); | |
const y = Math.pow(Math.abs(s), 2 / n) * b * Math.sign(s); |
This file contains hidden or 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
function getTileFromLatLon(zoom, lat, lon) { | |
const width = Math.pow(2, zoom); | |
const height = Math.pow(2, zoom); | |
const latRad = (lat * Math.PI) / 180; | |
const x = ~~((width * (lon + 180)) / 360); | |
const y = ~~(((1 - Math.asinh(Math.tan(latRad)) / Math.PI) / 2.0) * height); | |
return {zoom, x, y}; | |
} |
This file contains hidden or 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
// https://en.wikipedia.org/wiki/Superellipsoid | |
function c(w, m) { | |
const cv = Math.cos(w); | |
return Math.sign(cv) * Math.abs(cv) ** m; | |
} | |
function s(w, m) { | |
const sv = Math.sin(w); | |
return Math.sign(sv) * Math.abs(sv) ** m; |