-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
90 lines (76 loc) · 3.23 KB
/
index.html
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swing Simulator</title>
<link rel="stylesheet" href="style.css">
<script src="https://d3js.org/d3.v5.min.js"></script>
</head>
<body>
<h1>Infinite Recharge Climbing Simulator</h1>
<h1 class="subhead">Sam Fuchs (236 Alum)</h1>
<main>
<p>
This tool accurately simulates the geometry and physics of hanging
multiple robots in Infinite Recharge! Set a robot's weight to 0 to
remove it from the simulation. Try to keep the angle below 8 degrees!
Note that the viz constrains the switch to 14.5 degrees of tilt, but
still calculates the equilibrium angle if that constraint were not in
place.
For a robot rigidly attached to the rung, add a Center of Gravity (CG)
offset. For a robot that pivots at the rung attachment, set the CG
offset to 0.
This project is hosted on
<a href="https://github.com/samcfuchs/ClimbingSimulator" target="_blank">Github</a>.
</p>
<form id="weights" action="">
<div class="robot1">
<div class="input">
<label for="robot_1">Robot 1 weight (lbs):</label>
<input type="number" name="robot_1" value="140" min="0" max="200" step="5">
</div>
<div class="input">
<label for="robot_1_d">Robot 1 position (in):</label>
<input type="number" name="robot_1_d" value="-12" min="-55" max="55">
</div>
<div class="input">
<label for="robot_1_h">Robot 1 CG offset (in):</label>
<input type="number" name="robot_1_h" value="0" min="0" max="100">
</div>
</div>
<div class="robot2">
<div class="input">
<label for="robot_2">Robot 2 weight (lbs):</label>
<input type="number" name="robot_2" value="140" min="0" max="200" step="5">
</div>
<div class="input">
<label for="robot_2_d">Robot 2 position (in):</label>
<input type="number" name="robot_2_d" value="0" min="-55" max="55">
</div>
<div class="input">
<label for="robot_2_h">Robot 2 CG offset (in):</label>
<input type="number" name="robot_2_h" value="0" min="0" max="100">
</div>
</div>
<div class="robot3">
<div class="input">
<label for="robot_3">Robot 3 weight (lbs):</label>
<input type="number" name="robot_3" value="140" min="0" max="200" step="5">
</div>
<div class="input">
<label for="robot_3_d">Robot 3 position (in):</label>
<input type="number" name="robot_3_d" value="12" min="-55" max="55">
</div>
<div class="input">
<label for="robot_3_h">Robot 3 CG offset (in):</label>
<input type="number" name="robot_3_h" value="0" min="0" max="100">
</div>
</div>
</form>
<div class="svg-container">
<svg id="main"></svg>
</div>
<script src="script.js"></script>
</main>
</body>
</html>