1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, shrink-to-fit=yes"> 6 <title>Chladni plate</title> 7 8 <meta name="title" content="Chladni plate"> 9 <meta name="author" content="Lucio Paiva"> 10 <meta name="description" content="When resonating, a vibrating plate is divided into regions that oscillate in opposite directions, bounded by lines where no vibration occurs. The resulting patterns are what is called Chladni figures."> 11 12 <meta property="og:type" content="article"> 13 <meta property="og:title" content="Chladni plate"> 14 <meta property="og:description" content="When resonating, a vibrating plate is divided into regions that oscillate in opposite directions, bounded by lines where no vibration occurs. The resulting patterns are what is called Chladni figures."> 15 <meta property="og:site_name" content="Lucio Paiva"> 16 <meta property="og:url" content="https://luciopaiva.com/chladni/"> 17 <meta property="og:image" content="https://luciopaiva.com/chladni/thumbnail.png"> 18 <meta property="article:author" content="https://luciopaiva.com"> 19 <meta property="article:published_time" content="2018-11-15T00:00:00.000Z"> 20 21 <link rel="author" href="https://luciopaiva.com"> 22 23 <style> 24 :root { 25 --non-resonant-color: #9b9b9b; 26 --particle-color-1: #996dff; 27 --particle-color-2: #ffb73e; 28 --particle-color-3: #ff3dda; 29 --background-color: #000000; 30 } 31 body { 32 background-color: var(--background-color); 33 padding: 0; 34 margin: 0; 35 overflow: hidden; 36 37 font-family: monospace; 38 color: white; 39 } 40 p { 41 margin: 0; 42 } 43 canvas { 44 width: 100%; 45 height: 100%; 46 } 47 /* see http://phrogz.net/tmp/canvas_image_zoom.html 48 (via https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering) 49 */ 50 .pixelated { 51 image-rendering: -moz-crisp-edges; /* Firefox */ 52 image-rendering: -o-crisp-edges; /* Opera */ 53 image-rendering: -webkit-optimize-contrast; /* Safari */ 54 image-rendering: optimize-contrast; /* CSS3 Proposed */ 55 image-rendering: crisp-edges; /* CSS4 Proposed */ 56 image-rendering: pixelated; /* CSS4 Proposed */ 57 -ms-interpolation-mode: nearest-neighbor; /* IE8+ */ 58 } 59 #status { 60 position: absolute; 61 top: 10px; 62 right: 10px; 63 background-color: rgba(0, 0, 0, .6); 64 padding: 10px; 65 66 display: none; /* change to show status */ 67 } 68 #author { 69 position: absolute; 70 right: 20px; 71 bottom: 20px; 72 } 73 .circle-portrait { 74 width: 48px; 75 border-radius: 24px; 76 } 77 .inverted { 78 filter: invert(100%); 79 } 80 </style> 81
81<script src="utils.js" defer type="module"></script>
81 82
82<script src="index.js" defer type="module"></script>
82 83 84
84<script>
vendor: 382 bytes, lines 84-89
84 85 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 86 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 87 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 88 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 89 ga('create', '
89UA-101273659-1
vendor: 48 bytes, lines 89-91
89', 'auto'); 90 ga('send', 'pageview'); 91
91</script>
91 92</head> 93<body> 94<div id="status"> 95 <p>fps: <span id="fps"></span></p> 96</div> 97<span id="author"> 98 <a href="https://luciopaiva.com"><img class="circle-portrait" src="https://luciopaiva.com/img/avatar.jpg" alt="avatar" title="Lucio Paiva, 2018"></a> 99 <a href="https://github.com/luciopaiva/chladni"> 100 <img src="https://luciopaiva.com/img/github-logo.svg" alt="github" class="circle-portrait inverted" title="Source code"> 101 </a> 102</span>
103<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"614123556e5b40a8843e99faf2cfd8b5","r":1,"spa":2}' crossorigin="anonymous"></script>
103 104</body> 105</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.