1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>eigen.fun</title>
<meta name="application-name" content="eigen.fun">
<meta name="description" content="Play with linear transformations in your browser.">
<meta name="rating" content="General">
<link rel="author" href="https://smitop.com/">
<link rel="icon" href="/logo.svg">
<link rel="stylesheet" href="/style.css">
<!-- TODO: compile JS properly -->
<script src="https://unpkg.com/mathjs@9.4.3/lib/browser/math.js"></script>
<script src="/script.js"></script>
</head>
<body>
<h1>
<span class="title-left">eigen</span>.<span class="title-right">fun</span>
</h1>
<nav>
<button class="action" id="action-identity">
<span class="name">Identity</span>
<span class="icon"></span>
<span class="shortcut">1</span>
</button>
<button class="action" id="action-invert">
<span class="name">Inverse</span>
<span class="icon"></span>
<span class="shortcut">I</span>
</button>
<button class="action" id="action-zero">
<span class="name">Zero matrix</span>
<span class="icon"></span>
<span class="shortcut">0</span>
</button>
<button class="action" id="action-transpose">
<span class="name">Transpose</span>
<span class="icon"></span>
<span class="shortcut">T</span>
</button>
<button class="action" id="action-swap">
<span class="name">Swap</span>
<span class="icon"></span>
<span class="shortcut">Alt-S</span>
</button>
<button class="action" id="action-minorLines">
<span class="name">Minor lines</span>
<span class="icon"></span>
<span class="shortcut">M</span>
</button>
<button class="action" id="action-snap">
<span class="name">Snap</span>
<span class="icon"></span>
<span class="shortcut">S</span>
</button>
</nav>
<canvas id="transform-canvas"></canvas>
<canvas id="grid-canvas"></canvas>
<noscript>
eigen.fun requires JavaScript (it's an interactive matrix visualizer implemented entirely in JS)
</noscript>
<footer>
<div>
<a href="/about.html">about</a> |
<a href="https://sr.ht/~smitop/eigen.fun">source</a> |
<a href="https://smitop.com">author</a>
</div>
</footer>
</body>
</html>