PageSourceSearch

https://luciopaiva.com/chladni/

html luciopaiva.com collected 2026-10-01 14:00:01 UTC 4,568 bytes, 105 lines download raw bytes

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.