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; |