A proposal website from Red Hawk Robotics (FRC Team 2713) to the Superintendent of Schools in Melrose, Massachusetts, asking to convert the garage into a robotics lab. It has an executive summary, an analysis of the space, a phased plan, and a gallery of concept renderings.
Live site: https://frc2713.github.io/garage-proposal/
Built from FRC2713/hawk-app-template, trimmed to a static Astro site so it can be hosted on GitHub Pages.
- Shared data:
src/data/proposal.tsholds the section list, stats, spaces, safety items, phases, gallery captions, and requests. - One page per section in
src/pages/:index(overview),summary,analysis,gallery,research,plan,request. Reading order comes fromsections. - Header, section nav, and footer:
src/layouts/AppLayout.astro. Page banners and previous/next links:src/components/. - Renderings:
public/images/. They come from the SketchUp modelfrc2713_shop.skp, Option B. - 3D model (on the gallery page, behind the "View in 3D" switch;
/model/redirects there):src/components/islands/GarageViewer.tsx(React Three Fiber). Camera presets are written in SketchUp feet at the top of that file. - Visual rules:
docs/BRANDING.md. - Side-by-side plan (
src/components/LayoutPlan.astro):public/images/plan-existing.pngis a crop of the May 2019 MHS second-floor plan PDF, andplan-proposed.jpgis a labels-off, top-down parallel view of Option B exported from SketchUp. Room marker positions live inplanRoomsinsrc/data/proposal.ts; re-place them if either image is re-cropped.
The viewer loads public/models/garage-option-b.glb, built from the SketchUp model:
- To repaint the team logos on the lab walls, run
node scripts/logo-outlines.mjs(it flattens the SVGs indocs/logos/intoscripts/logo-outlines.json), then loadscripts/add-branding.rbin SketchUp's Ruby console. Logo sizes and walls are listed at the top of that script. - In SketchUp with
frc2713_shop.skpopen, runscripts/export-option-b.rbin the Ruby console. It writes~/Desktop/option-b-mesh.jsonwith the visible Option B geometry (roof, ceilings, and floating labels left out). - Run
node scripts/build-model.mjs ~/Desktop/option-b-mesh.jsonto write the.glb.
npm install
npm run devOpen http://localhost:4321/garage-proposal/.
Every push to main runs npm run check and deploys dist/ to GitHub Pages through .github/workflows/deploy.yml.