Repository navigation
Expand file tree
/
Copy pathprojects.html
More file actions
413 lines (381 loc) · 36.3 KB
/
Copy pathprojects.html
File metadata and controls
413 lines (381 loc) · 36.3 KB
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Projects and Competitions | SBHS Aerospace Club</title>
<meta name="description" content="SBHS Aerospace Club projects: an ARC airbrake system and flight code, a NASA TechRise NDVI payload, CFD studies, rocket CAD, and the CircuitSpace planning tool." />
<meta name="robots" content="index, follow, max-image-preview:large" />
<link rel="canonical" href="https://sbaerospace.vercel.app/projects.html" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="SBHS Aerospace Club" />
<meta property="og:locale" content="en_US" />
<meta property="og:title" content="Projects and Competitions | SBHS Aerospace Club" />
<meta property="og:description" content="SBHS Aerospace Club projects: an ARC airbrake system and flight code, a NASA TechRise NDVI payload, CFD studies, rocket CAD, and the CircuitSpace planning tool." />
<meta property="og:url" content="https://sbaerospace.vercel.app/projects.html" />
<meta property="og:image" content="https://sbaerospace.vercel.app/assets/og/sbhs-aerospace-og.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="SBHS Aerospace Club members behind the launch rail at the 2025 American Rocketry Challenge National Finals" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Projects and Competitions | SBHS Aerospace Club" />
<meta name="twitter:description" content="SBHS Aerospace Club projects: an ARC airbrake system and flight code, a NASA TechRise NDVI payload, CFD studies, rocket CAD, and the CircuitSpace planning tool." />
<meta name="twitter:image" content="https://sbaerospace.vercel.app/assets/og/sbhs-aerospace-og.jpg" />
<meta name="twitter:image:alt" content="SBHS Aerospace Club members behind the launch rail at the 2025 American Rocketry Challenge National Finals" />
<link rel="icon" href="favicon.ico" sizes="any" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/logo/favicon-32.png" />
<link rel="apple-touch-icon" href="assets/logo/apple-touch-icon.png" />
<meta name="theme-color" content="#0A0A0A" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap" />
<link rel="stylesheet" href="style.css?v=4.9" />
<script src="main.js?v=4.9" defer></script>
</head>
<body>
<a href="#main" class="skip-link">Skip to content</a>
<div class="sky" aria-hidden="true">
<div class="sky__night"></div>
<div class="sky__dawn"></div>
<div class="sky__stars"><span style="top:35.8%;left:96.2%;width:1.5px;height:1.5px;--d:4.3s;--delay:3.4s;--o:0.55"></span><span style="top:10.1%;left:13.1%;width:1.5px;height:1.5px;--d:6.4s;--delay:3.2s;--o:0.67"></span><span style="top:17.2%;left:90.8%;width:1px;height:1px;--d:5.6s;--delay:1.3s;--o:0.39"></span><span style="top:12.5%;left:84.2%;width:1px;height:1px;--d:3.8s;--delay:5.8s;--o:0.89"></span><span style="top:49.4%;left:50.3%;width:1px;height:1px;--d:5.2s;--delay:2.8s;--o:0.37"></span><span style="top:12.1%;left:24.2%;width:2px;height:2px;--d:5.5s;--delay:5.1s;--o:0.70"></span><span style="top:7.3%;left:97.5%;width:1.5px;height:1.5px;--d:5.6s;--delay:3.6s;--o:0.46"></span><span style="top:20.3%;left:29.5%;width:1.5px;height:1.5px;--d:6.3s;--delay:4.3s;--o:0.70"></span><span style="top:6.1%;left:47.5%;width:1.5px;height:1.5px;--d:3.4s;--delay:5.4s;--o:0.87"></span><span style="top:53.4%;left:31.8%;width:1.5px;height:1.5px;--d:4.1s;--delay:0.8s;--o:0.85"></span><span style="top:41.0%;left:71.7%;width:2px;height:2px;--d:6.3s;--delay:0.9s;--o:0.56"></span><span style="top:59.9%;left:3.0%;width:1px;height:1px;--d:6.9s;--delay:5.7s;--o:0.52"></span><span style="top:64.3%;left:17.6%;width:1.5px;height:1.5px;--d:4.7s;--delay:3.1s;--o:0.41"></span><span style="top:70.8%;left:49.0%;width:1.5px;height:1.5px;--d:3.4s;--delay:4.4s;--o:0.74"></span><span style="top:78.2%;left:76.5%;width:1px;height:1px;--d:6.9s;--delay:2.9s;--o:0.64"></span><span style="top:7.9%;left:56.3%;width:1.5px;height:1.5px;--d:6.5s;--delay:0.2s;--o:0.87"></span><span style="top:54.4%;left:20.7%;width:1px;height:1px;--d:3.8s;--delay:5.1s;--o:0.39"></span><span style="top:25.4%;left:18.5%;width:1px;height:1px;--d:5.8s;--delay:4.1s;--o:0.53"></span><span style="top:35.6%;left:37.2%;width:1px;height:1px;--d:5.8s;--delay:3.5s;--o:0.55"></span><span style="top:64.7%;left:65.5%;width:1px;height:1px;--d:5.8s;--delay:2.1s;--o:0.80"></span><span style="top:12.2%;left:28.7%;width:1px;height:1px;--d:5.1s;--delay:2.2s;--o:0.52"></span><span style="top:15.3%;left:53.9%;width:1px;height:1px;--d:6.2s;--delay:5.1s;--o:0.71"></span><span style="top:88.9%;left:85.5%;width:1px;height:1px;--d:5.2s;--delay:3.5s;--o:0.38"></span><span style="top:55.2%;left:68.4%;width:1.5px;height:1.5px;--d:4.7s;--delay:4.9s;--o:0.77"></span><span style="top:10.9%;left:57.5%;width:1px;height:1px;--d:5.2s;--delay:1.0s;--o:0.40"></span><span style="top:5.2%;left:77.7%;width:1.5px;height:1.5px;--d:3.5s;--delay:3.4s;--o:0.79"></span><span style="top:63.1%;left:68.2%;width:2px;height:2px;--d:3.8s;--delay:0.7s;--o:0.81"></span><span style="top:35.7%;left:40.1%;width:1.5px;height:1.5px;--d:5.5s;--delay:1.4s;--o:0.48"></span><span style="top:42.5%;left:62.1%;width:1px;height:1px;--d:4.3s;--delay:3.9s;--o:0.61"></span><span style="top:6.2%;left:55.0%;width:1px;height:1px;--d:4.6s;--delay:5.8s;--o:0.65"></span><span style="top:70.1%;left:30.0%;width:1px;height:1px;--d:3.5s;--delay:5.6s;--o:0.43"></span><span style="top:77.2%;left:71.6%;width:1px;height:1px;--d:4.8s;--delay:5.9s;--o:0.75"></span><span style="top:74.9%;left:75.3%;width:1px;height:1px;--d:5.1s;--delay:4.2s;--o:0.61"></span><span style="top:74.8%;left:12.6%;width:2.5px;height:2.5px;--d:6.3s;--delay:3.4s;--o:0.93"></span><span style="top:49.4%;left:61.4%;width:1px;height:1px;--d:6.6s;--delay:1.5s;--o:0.82"></span><span style="top:30.6%;left:85.1%;width:1.5px;height:1.5px;--d:3.7s;--delay:2.1s;--o:0.70"></span><span style="top:63.4%;left:30.0%;width:2.5px;height:2.5px;--d:4.6s;--delay:3.1s;--o:0.35"></span><span style="top:12.7%;left:55.9%;width:1.5px;height:1.5px;--d:6.0s;--delay:3.8s;--o:0.40"></span><span style="top:11.5%;left:8.5%;width:1px;height:1px;--d:3.2s;--delay:5.2s;--o:0.75"></span><span style="top:54.4%;left:26.3%;width:2.5px;height:2.5px;--d:5.4s;--delay:2.7s;--o:0.87"></span><span style="top:26.5%;left:21.2%;width:1.5px;height:1.5px;--d:4.1s;--delay:4.5s;--o:0.68"></span><span style="top:67.4%;left:21.9%;width:2.5px;height:2.5px;--d:4.1s;--delay:1.6s;--o:0.52"></span><span style="top:50.6%;left:60.8%;width:1px;height:1px;--d:6.5s;--delay:5.3s;--o:0.44"></span><span style="top:33.4%;left:91.3%;width:1px;height:1px;--d:3.3s;--delay:0.4s;--o:0.37"></span><span style="top:89.0%;left:26.4%;width:1.5px;height:1.5px;--d:3.4s;--delay:2.2s;--o:0.44"></span><span style="top:22.9%;left:21.2%;width:1.5px;height:1.5px;--d:4.2s;--delay:4.6s;--o:0.94"></span><span style="top:47.6%;left:1.6%;width:2px;height:2px;--d:3.0s;--delay:2.1s;--o:0.90"></span><span style="top:70.4%;left:93.6%;width:1px;height:1px;--d:6.7s;--delay:3.7s;--o:0.83"></span><span style="top:11.5%;left:42.9%;width:2px;height:2px;--d:3.5s;--delay:0.9s;--o:0.64"></span><span style="top:32.7%;left:61.2%;width:1.5px;height:1.5px;--d:4.9s;--delay:5.5s;--o:0.68"></span><span style="top:16.9%;left:75.5%;width:2.5px;height:2.5px;--d:4.7s;--delay:0.5s;--o:0.48"></span><span style="top:20.8%;left:78.8%;width:1px;height:1px;--d:6.3s;--delay:0.6s;--o:0.71"></span><span style="top:27.3%;left:59.8%;width:1px;height:1px;--d:5.9s;--delay:2.0s;--o:0.52"></span><span style="top:10.6%;left:58.8%;width:1.5px;height:1.5px;--d:3.8s;--delay:5.4s;--o:0.70"></span><span style="top:40.4%;left:15.6%;width:1px;height:1px;--d:5.7s;--delay:3.0s;--o:0.45"></span><span style="top:8.6%;left:39.1%;width:1px;height:1px;--d:3.1s;--delay:2.7s;--o:0.68"></span><span style="top:85.0%;left:54.6%;width:1.5px;height:1.5px;--d:3.2s;--delay:1.1s;--o:0.93"></span><span style="top:62.1%;left:49.0%;width:1px;height:1px;--d:5.0s;--delay:1.5s;--o:0.38"></span><span style="top:76.6%;left:14.1%;width:1.5px;height:1.5px;--d:4.2s;--delay:3.7s;--o:0.44"></span><span style="top:62.1%;left:61.6%;width:1px;height:1px;--d:4.2s;--delay:5.6s;--o:0.94"></span><span style="top:79.1%;left:44.8%;width:2.5px;height:2.5px;--d:3.4s;--delay:5.1s;--o:0.66"></span><span style="top:10.3%;left:96.4%;width:2.5px;height:2.5px;--d:6.4s;--delay:4.2s;--o:0.53"></span><span style="top:74.7%;left:32.0%;width:1.5px;height:1.5px;--d:6.1s;--delay:4.0s;--o:0.85"></span><span style="top:23.5%;left:25.2%;width:1.5px;height:1.5px;--d:5.6s;--delay:5.6s;--o:0.42"></span></div>
</div>
<header>
<div class="nav-inner">
<a href="index.html" class="logo">
<img src="assets/logo/badge-white-96.png" alt="" width="40" height="40" />
SBHS Aerospace
</a>
<nav class="nav-links" aria-label="Primary navigation">
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="projects.html">Work</a>
<a href="club.html">Club</a>
<div class="nav-dropdown" id="teamsDropdown">
<a href="teams.html" class="nav-dropdown-link">Teams</a>
<button class="nav-dropdown-toggle" type="button" aria-expanded="false" aria-controls="teamsMenu" aria-label="Show the list of teams">
<svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9" /></svg>
</button>
<div class="nav-dropdown-menu" id="teamsMenu">
<a href="teams.html#arc">American Rocketry Challenge (2 teams)</a>
<a href="teams.html#techrise">NASA TechRise</a>
<a href="teams.html#genes-in-space">Genes in Space (2 teams)</a>
<a href="teams.html#aviation-design">Aviation Design Challenge</a>
<a href="teams.html#cubes-in-space">Cubes in Space</a>
<a href="teams.html#aerial-drone">REC Foundation Aerial Drone Competition</a>
</div>
</div>
<a href="tryouts.html">Tryouts</a>
<a href="sponsor.html">Sponsor</a>
<a href="contact.html">Contact</a>
</nav>
<div class="nav-actions">
<button class="theme-toggle" id="themeToggle" aria-label="Toggle dark mode">
<svg class="icon-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" />
</svg>
<svg class="icon-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<circle cx="12" cy="12" r="5" />
<line x1="12" y1="1" x2="12" y2="3" />
<line x1="12" y1="21" x2="12" y2="23" />
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64" />
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78" />
<line x1="1" y1="12" x2="3" y2="12" />
<line x1="21" y1="12" x2="23" y2="12" />
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36" />
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22" />
</svg>
</button>
<a href="club.html#join" class="btn-nav">Join Us</a>
<button class="hamburger" id="hamburger" aria-label="Open menu" aria-expanded="false" aria-controls="mobileNav">
<span></span><span></span><span></span>
</button>
</div>
</div>
</header>
<nav class="mobile-nav" id="mobileNav" aria-label="Mobile navigation">
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="projects.html">Work</a>
<a href="club.html">Club</a>
<a href="teams.html">Teams</a>
<div class="mobile-subnav">
<a href="teams.html#arc">American Rocketry Challenge (2 teams)</a>
<a href="teams.html#techrise">NASA TechRise</a>
<a href="teams.html#genes-in-space">Genes in Space (2 teams)</a>
<a href="teams.html#aviation-design">Aviation Design Challenge</a>
<a href="teams.html#cubes-in-space">Cubes in Space</a>
<a href="teams.html#aerial-drone">REC Foundation Aerial Drone Competition</a>
</div>
<a href="tryouts.html">Tryouts</a>
<a href="sponsor.html">Sponsor</a>
<a href="contact.html">Contact</a>
</nav>
<main id="main">
<div class="page-header">
<div class="container">
<div class="page-header-text">
<p class="eyebrow">Our work</p>
<h1>Projects and Competitions</h1>
<p>Here's what we've designed, simulated, built, and flown. We try to be clear about which is which.</p>
</div>
<div class="page-art" aria-hidden="true"><svg viewBox="0 0 260 220" focusable="false"><path d="M14 200 H246" /><path class="dash" d="M38 196 C 52 120 92 44 146 34 C 192 26 216 76 222 120" /><circle class="dot" cx="146" cy="34" r="3.5" /><path d="M146 26 V8 L162 13 L146 18" /><g transform="rotate(16 38 186)"><path class="solid" d="M38 166 C 43 171 44 177 44 183 V196 H32 V183 C 32 177 33 171 38 166 Z" /></g><path class="solid" d="M202 124 A 20 15 0 0 1 242 124 Z" /><path d="M202 124 L218 150 M242 124 L226 150 M222 124 V150" /><rect class="solid" x="216" y="150" width="12" height="16" rx="2" /><path d="M70 200 v-6 M110 200 v-6 M150 200 v-6 M190 200 v-6" /><path class="plus" d="M28 40 h12 m-6 -6 v12" /></svg></div>
</div>
</div>
<section class="section" style="padding-top: 40px;">
<div class="container">
<!-- TAB BAR -->
<div class="tab-bar" role="tablist">
<button class="tab-btn active" data-tab="tab-projects" role="tab" aria-selected="true"
aria-controls="tab-projects" id="tab-projects-btn">Hardware</button>
<button class="tab-btn" data-tab="tab-research" role="tab" aria-selected="false"
aria-controls="tab-research" id="tab-research-btn">Simulation & Tools</button>
<button class="tab-btn" data-tab="tab-competition" role="tab" aria-selected="false"
aria-controls="tab-competition" id="tab-competition-btn">Competitions</button>
</div>
<!-- ── HARDWARE ──────────────────────────────────── -->
<div class="tab-panel active" id="tab-projects" role="tabpanel" aria-labelledby="tab-projects-btn">
<h2 class="section-title" style="font-size: 1.5rem; margin-bottom: 1.5rem;">Hardware and flight code</h2>
<div class="cards-grid">
<article class="project-card reveal">
<div class="project-card-img contain">
<img data-lightbox="airbrakes" data-full="assets/photos/airbrake-cad-1200.webp" src="assets/photos/airbrake-cad-700.webp" width="700" height="788" loading="lazy" decoding="async"
alt="CAD render of the airbrake module: a cylindrical airframe section with four red flaps extended" />
</div>
<div class="lightbox-extra" hidden>
<img data-lightbox="airbrakes" data-caption="CFD of the airflow without the airbrake flaps (top) and with them out (bottom). Simulation results, not flight data." src="assets/photos/airbrake-cfd-1234.webp" loading="lazy" decoding="async" alt="Two CFD flow plots of the rocket: the top without airbrake flaps, the bottom with the flaps extended" />
</div>
<div class="project-card-body">
<h3>Airbrakes for the 2025-26 ARC rocket</h3>
<p>Four flaps fold out of a 3D-printed section of the airframe to add drag, so the rocket can slow itself down on the way to its 750 ft target. So far this exists as CAD and code. The picture is a CAD render.</p>
<p>Version 2 of the CAD includes the airbrake housing, flaps, flap joints, fin can, and a centering ring for the electronics bay, all saved as 3D print files. A servo moves the flaps, and Rocket++ decides when.</p>
<a class="card-link" href="https://github.com/SBAerospace/CAD" target="_blank" rel="noopener noreferrer">CAD files on GitHub →</a>
</div>
</article>
<article class="project-card reveal reveal-delay-1">
<div class="project-card-img top">
<img data-lightbox="rocketplus" data-full="assets/photos/rocketplus-code-1800.webp" src="assets/photos/rocketplus-code-1000.webp" width="1000" height="957" loading="lazy" decoding="async"
alt="Screenshot of the Rocket++ main.cpp file, showing sensor libraries for the BME280 and MPU6050, a servo, and a 228.6 meter target apogee" />
</div>
<div class="project-card-body">
<h3>Rocket++ flight code</h3>
<p>Rocket++ is the C++ code that runs the airbrakes on an Arduino-compatible board. It reads a BME280 barometer and an MPU6050 accelerometer, estimates how high the rocket will go, and deploys the brakes to aim for 750 ft (228.6 m).</p>
<p>The screenshot is from an early version, before the mass and drag numbers were set for a specific rocket.</p>
<a class="card-link" href="https://github.com/SBAerospace/Airbrakes" target="_blank" rel="noopener noreferrer">Code on GitHub →</a>
</div>
</article>
<article class="project-card reveal reveal-delay-2">
<div class="project-card-img">
<img data-lightbox="ndvi" data-full="assets/photos/techrise-weekly-meeting-1600.webp" src="assets/photos/techrise-weekly-meeting-800.webp" width="800" height="836" loading="lazy" decoding="async"
style="object-position: center 45%;"
alt="Team members working on laptops around the NASA TechRise kit boxes at a weekly meeting" />
</div>
<div class="lightbox-extra" hidden>
<img data-lightbox="ndvi" data-full="assets/photos/techrise-payload-check-1600.webp" data-caption="Checking the payload in its clear enclosure. March 2026." src="assets/photos/techrise-payload-check-800.webp" loading="lazy" decoding="async" alt="Two team members checking the payload inside its clear enclosure next to a laptop" />
<img data-lightbox="ndvi" data-full="assets/photos/ndvi-payload-prototype-1600.webp" data-caption="A close look at the payload prototype and its wiring." src="assets/photos/ndvi-payload-prototype-600.webp" loading="lazy" decoding="async" alt="NDVI payload prototype: a microcontroller and sensor boards wired inside a clear rectangular enclosure on a workbench" />
<img data-lightbox="ndvi" data-full="assets/photos/techrise-wiring-1600.webp" data-caption="Wiring and testing the payload sensors. March 2026." src="assets/photos/techrise-wiring-800.webp" loading="lazy" decoding="async" alt="A team member wiring a sensor board while a phone shows live readings" />
<img data-lightbox="ndvi" data-full="assets/photos/techrise-electronics-1600.webp" data-caption="Connecting the payload electronics. March 2026." src="assets/photos/techrise-electronics-800.webp" loading="lazy" decoding="async" alt="Three team members connecting payload electronics at a table" />
<img data-lightbox="ndvi" data-full="assets/photos/techrise-soldering-1600.webp" data-caption="Practicing soldering for the payload build. February 2026." src="assets/photos/techrise-soldering-800.webp" loading="lazy" decoding="async" alt="A team member soldering at a workbench with a blue silicone mat" />
</div>
<div class="project-card-body">
<h3>NDVI payload for NASA TechRise</h3>
<p>This is a prototype of our TechRise payload. It measures how much visible and near-infrared light comes off the ground, which is what you need to calculate NDVI, a standard way to measure plant health.</p>
<p>It uses an AS7343 spectral sensor, a TSL2591 light sensor, a BME280, and an MPU6050. Once a second it writes the World View balloon's flight data and every sensor reading to an SD card. The Python code keeps logging even if a sensor fails, and LEDs show what state it's in.</p>
<a class="card-link" href="https://github.com/SBAerospace/NDVI-Mapping" target="_blank" rel="noopener noreferrer">Payload code on GitHub →</a>
</div>
</article>
<article class="project-card reveal">
<div class="project-card-img photo-full">
<img data-lightbox="arc-rockets" src="assets/photos/arc-2027-build-pad-480.webp" width="480" height="308" loading="lazy" decoding="async"
alt="A red and white SBHS student-built competition rocket standing on a launch rail in a grass field" />
</div>
<div class="lightbox-extra" hidden>
<img data-lightbox="arc-rockets" data-full="assets/photos/arc-2025-finals-launch-1200.webp" data-caption="Liftoff at the 2025 National Finals." src="assets/photos/arc-2025-finals-launch-640.webp" loading="lazy" decoding="async" alt="SBHS Aerospace Club members stand behind the launch rail as their rocket lifts off at the 2025 American Rocketry Challenge National Finals" />
<img data-lightbox="arc-rockets" data-full="assets/photos/arc-2024-finals-launch-1500.webp" data-caption="Liftoff at the 2024 National Finals." src="assets/photos/arc-2024-finals-launch-600.webp" loading="lazy" decoding="async" alt="Club members watch their yellow-finned rocket leave the pad at the 2024 American Rocketry Challenge National Finals" />
</div>
<div class="project-card-body">
<h3>ARC competition rockets</h3>
<p>Every season, a club team builds a rocket for the American Rocketry Challenge. It has to carry a raw egg to a set altitude, stay up for a set amount of time, and bring the egg back without a crack. Our teams flew at the National Finals in 2024, 2025, and 2026.</p>
<p>In the photo: the current SBHS build on the pad at the World Space Week launch at North Branch Park in October 2026.</p>
</div>
</article>
</div>
</div>
<!-- ── SIMULATION & TOOLS ──────────────────────────── -->
<div class="tab-panel" id="tab-research" role="tabpanel" aria-labelledby="tab-research-btn">
<h2 class="section-title" style="font-size: 1.5rem; margin-bottom: 1.5rem;">Simulation and design tools</h2>
<div class="cards-grid">
<article class="project-card reveal">
<div class="project-card-img contain">
<img data-lightbox="cfd" src="assets/photos/airbrake-cfd-1234.webp" width="1234" height="934" loading="lazy" decoding="async"
alt="Two CFD flow plots of the rocket in side view: the top without airbrake flaps, the bottom with flaps extended at mid-body" />
</div>
<div class="project-card-body">
<h3>Airbrake CFD</h3>
<p>We simulated the airflow around the rocket twice: once without the airbrake flaps (top) and once with them out (bottom). These are simulation results, not data from a flight.</p>
</div>
</article>
<article class="project-card reveal reveal-delay-1">
<div class="project-card-img top">
<img data-lightbox="circuitspace" data-full="assets/photos/circuitspace-2000.webp" src="assets/photos/circuitspace-1200.webp" width="1200" height="634" loading="lazy" decoding="async"
alt="CircuitSpace screenshot: a component library of batteries, regulators, and microcontrollers on the left, a schematic canvas in the middle, and a power summary showing current draw, estimated runtime, and mass" />
</div>
<div class="project-card-body">
<h3>CircuitSpace</h3>
<p>A web app we made for planning rocket electronics. You pick parts from a library of batteries, regulators, microcontrollers, and sensors and wire them up. It checks the wiring for problems, works out current draw, battery runtime, and mass, and exports a parts list or the diagram.</p>
<a class="card-link" href="https://github.com/SBAerospace/CircuitSpace" target="_blank" rel="noopener noreferrer">CircuitSpace on GitHub →</a>
</div>
</article>
<article class="project-card reveal reveal-delay-2">
<div class="project-card-img contain" style="background: #eeefef;">
<img data-lightbox="openrocket" data-full="assets/photos/openrocket-arc-2027-2000.webp" src="assets/photos/openrocket-arc-2027-1000.webp" width="1000" height="329" loading="lazy" decoding="async"
style="background: #eeefef;"
alt="OpenRocket side view of the club's ARC 2027 rocket design, 89.5 cm long, with its center of gravity and center of pressure marked" />
</div>
<div class="project-card-body">
<h3>OpenRocket model for ARC 2027</h3>
<p>Before we build anything, we model the rocket in OpenRocket. It tells us whether the rocket is stable and how high and how long it should fly compared with the ARC targets. This is our model for the 2027 rocket: 89.5 cm long, 640 g with the motor, and 1.78 calibers of stability. On an F32T-6 motor the simulation puts apogee at 236 m, about 775 ft. Applicants for the simulation tryout did the same kind of work.</p>
</div>
</article>
</div>
</div>
<!-- ── COMPETITIONS ────────────────────────────────── -->
<div class="tab-panel" id="tab-competition" role="tabpanel" aria-labelledby="tab-competition-btn">
<h2 class="section-title" style="font-size: 1.5rem; margin-bottom: 0.75rem;">Competition results<span class="fn" aria-hidden="true">*</span></h2>
<p style="color: var(--text-2); max-width: 680px; margin-bottom: 1.75rem; line-height: 1.65;">
Here's how we've done so far. At one of our trips to the National Finals, one of our teams placed 50th out of 100.
<span class="footnote" style="display: block; margin-top: 0.6rem;"><span class="fn" aria-hidden="true">*</span> Results from 2024 to 2026 were earned as South Brunswick Aerospace Club, the nonprofit that came before the SBHS club.</span>
</p>
<div class="cards-grid">
<article class="project-card reveal">
<div class="project-card-img">
<img data-lightbox="result-techrise" data-full="assets/photos/techrise-team-certificate-1600.webp" src="assets/photos/techrise-team-certificate-800.webp" width="800" height="490" loading="lazy" decoding="async"
alt="SBHS Aerospace Club TechRise team members and advisor Ms. Chishti holding the NASA TechRise Student Challenge certificate in a school lab" />
</div>
<div class="lightbox-extra" hidden>
<img data-lightbox="result-techrise" data-full="assets/photos/techrise-weekly-meeting-1600.webp" data-caption="A weekly TechRise meeting, with the kit boxes on the table. February 2026." src="assets/photos/techrise-weekly-meeting-800.webp" loading="lazy" decoding="async" alt="Team members working on laptops around the NASA TechRise kit boxes at a weekly meeting" />
<img data-lightbox="result-techrise" data-full="assets/photos/techrise-payload-check-1600.webp" data-caption="Checking the payload in its clear enclosure. March 2026." src="assets/photos/techrise-payload-check-800.webp" loading="lazy" decoding="async" alt="Two team members checking the payload inside its clear enclosure next to a laptop" />
<img data-lightbox="result-techrise" data-full="assets/photos/techrise-build-session-1600.webp" data-caption="A payload build session. March 2026." src="assets/photos/techrise-build-session-800.webp" loading="lazy" decoding="async" alt="Five team members working at a long table during a payload build session" />
<img data-lightbox="result-techrise" data-full="assets/photos/techrise-solder-station-1600.webp" data-caption="Reviewing the circuit at the soldering station. February 2026." src="assets/photos/techrise-solder-station-800.webp" loading="lazy" decoding="async" alt="Two team members at the soldering station in front of a NASA research poster" />
</div>
<div class="project-card-body">
<h3>2026 NASA TechRise Winner</h3>
<p>Our proposal, NDVI Mapping via Machine Learning, won the 2025-26 TechRise Student Challenge in January 2026. There's more about the payload under Hardware.</p>
</div>
</article>
<article class="project-card reveal reveal-delay-1">
<div class="project-card-img">
<img data-lightbox="result-arc-2026" data-full="assets/photos/arc-2026-finals-team-964.webp" data-caption="ARC Team B at the 2026 National Finals in The Plains, Virginia." src="assets/photos/arc-2026-finals-team-800.webp" width="800" height="747" loading="lazy" decoding="async"
style="object-position: center 62%;"
alt="ARC Team B members in black club shirts and lanyards leaning on giant ARC letters at the 2026 American Rocketry Challenge National Finals" />
</div>
<div class="project-card-body">
<h3>2026 ARC National Finals</h3>
<p>Our ARC Team B was one of 100 teams picked for the National Finals from 1,107 entries, and one of six from New Jersey. It was our third trip to The Plains, Virginia.</p>
</div>
</article>
<article class="project-card reveal reveal-delay-2">
<div class="project-card-img">
<img data-lightbox="result-arc-2025" src="assets/photos/arc-2025-finals-team-1400.jpg" srcset="assets/photos/arc-2025-finals-team-800.jpg 800w, assets/photos/arc-2025-finals-team-1400.jpg 1400w" sizes="(max-width: 860px) 100vw, 580px" width="1400" height="989" loading="lazy" decoding="async"
alt="Nine SBHS Aerospace Club members in matching navy shirts in front of the American Rocketry Challenge backdrop" />
</div>
<div class="lightbox-extra" hidden>
<img data-lightbox="result-arc-2025" data-full="assets/photos/arc-2025-finals-launch-1200.webp" data-caption="Liftoff at the 2025 National Finals." src="assets/photos/arc-2025-finals-launch-640.webp" loading="lazy" decoding="async" alt="SBHS Aerospace Club members stand behind the launch rail as their rocket lifts off at the 2025 American Rocketry Challenge National Finals" />
</div>
<div class="project-card-body">
<h3>2025 ARC National Finals</h3>
<p>One of our teams qualified again and flew at the finals in The Plains, Virginia.</p>
</div>
</article>
<article class="project-card reveal reveal-delay-2">
<div class="project-card-img top">
<img data-lightbox="result-arc-2024" data-full="assets/photos/arc-2024-finals-launch-1500.webp" src="assets/photos/arc-2024-finals-launch-600.webp" width="600" height="797" loading="lazy" decoding="async"
style="object-position: center 55%;"
alt="Club members watch their yellow-finned rocket leave the pad at the 2024 American Rocketry Challenge National Finals" />
</div>
<div class="project-card-body">
<h3>2024 ARC National Finals</h3>
<p>One of our teams made the 100-team National Finals in The Plains, Virginia.</p>
</div>
</article>
<article class="project-card reveal">
<div class="project-card-body">
<h3>This season (2026-27)</h3>
<p>Our competitive teams are working on the American Rocketry Challenge (two teams), NASA TechRise, Genes in Space (two teams), Cubes in Space, the Aviation Design Challenge, and the REC Foundation Aerial Drone Competition.</p>
<a class="card-link" href="teams.html">See each team →</a>
</div>
</article>
</div>
</div>
</div>
</section>
</main>
<footer>
<div class="horizon" aria-hidden="true">
<svg viewBox="0 0 1440 150" preserveAspectRatio="xMaxYMax slice">
<!-- distant hills -->
<path class="hz-far" d="M0 118 C 140 96, 260 92, 380 104 S 640 88, 780 100 S 1080 86, 1220 98 S 1380 104, 1440 100 V150 H0 Z" />
<!-- trees on the left -->
<g class="hz-shape">
<path d="M96 124 V112 M96 64 L80 92 H88 L74 112 H118 L104 92 H112 Z" />
<path d="M140 124 V114 M140 78 L127 100 H134 L122 114 H158 L146 100 H153 Z" />
<path d="M60 124 V116 M60 88 L49 104 H55 L45 116 H75 L65 104 H71 Z" />
<circle cx="196" cy="98" r="18" /><path d="M196 116 V124" />
</g>
<!-- launch-day canopy -->
<g class="hz-shape">
<path d="M420 92 L500 92 L512 104 L408 104 Z" />
<path d="M414 104 V124 M506 104 V124" />
</g>
<!-- fence -->
<path class="hz-line" d="M590 116 H880 M600 110 V124 M650 110 V124 M700 110 V124 M750 110 V124 M800 110 V124 M850 110 V124" />
<!-- launch rail with a rocket -->
<g class="hz-shape">
<path d="M1000 124 L1012 108 L1024 124 M1012 108 V22" />
<path d="M1019 36 C 1023 42 1025 50 1025 58 V92 H1013 V58 C1013 50 1015 42 1019 36 Z" />
<path d="M1013 82 L1006 94 H1013 M1025 82 L1032 94 H1025" />
</g>
<path class="hz-dash" d="M1019 30 C 1021 10 1030 -8 1046 -26" />
<!-- windsock -->
<g class="hz-shape"><path d="M1236 124 V70" /><path d="M1236 72 L1266 77 L1266 85 L1236 86 Z" /></g>
<!-- ground -->
<path class="hz-ground" d="M0 124 C 360 116, 1080 116, 1440 124 V150 H0 Z" />
<path class="hz-line" d="M0 124 C 360 116, 1080 116, 1440 124" />
<path class="hz-grass" d="M260 128 l3 -6 l3 6 M330 132 l3 -6 l3 6 M560 130 l3 -6 l3 6 M940 131 l3 -6 l3 6 M1120 128 l3 -6 l3 6 M1330 130 l3 -6 l3 6" />
</svg>
</div>
<div class="footer-inner">
<div class="footer-brand">
<img class="footer-badge" src="assets/logo/badge-white-128.png" width="64" height="64" loading="lazy" alt="SBHS Aerospace Club badge" />
<h3>SBHS Aerospace Club</h3>
<p>A student-run aerospace engineering club at South Brunswick High School in Monmouth Junction, New Jersey.</p>
</div>
<div class="footer-col">
<h4>Pages</h4>
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="projects.html">Work</a>
<a href="club.html">Club</a>
<a href="teams.html">Teams</a>
<a href="tryouts.html">Tryouts</a>
<a href="sponsor.html">Sponsor</a>
<a href="contact.html">Contact</a>
</div>
<div class="footer-col">
<h4>Connect</h4>
<a href="mailto:sbhsaerospace@gmail.com">Email</a>
<a href="https://www.instagram.com/sbaeroclub/" target="_blank" rel="noopener noreferrer">Instagram</a>
<a href="https://www.instagram.com/sbhs_aerospaceclub_team_a/" target="_blank" rel="noopener noreferrer">Instagram (ARC Team A)</a>
<a href="https://www.linkedin.com/company/south-brunswick-high-school-aerospace" target="_blank" rel="noopener noreferrer">LinkedIn</a>
<a href="https://github.com/SBAerospace" target="_blank" rel="noopener noreferrer">GitHub</a>
<a href="https://www.facebook.com/people/SB-Aerospace/61559474409905/" target="_blank" rel="noopener noreferrer">Facebook</a>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="copy-year">2026</span> SBHS Aerospace Club · South Brunswick High School, Monmouth Junction, NJ 08852</span>
<a href="mailto:sbhsaerospace@gmail.com">sbhsaerospace@gmail.com</a>
</div>
</footer>
</body>
</html>