diff --git a/public/home/landing_banner_small.webp b/public/home/landing_banner_small.webp deleted file mode 100644 index 62c4f58..0000000 Binary files a/public/home/landing_banner_small.webp and /dev/null differ diff --git a/public/home/ocean.png b/public/home/ocean.png deleted file mode 100644 index 673ad45..0000000 Binary files a/public/home/ocean.png and /dev/null differ diff --git a/public/home/under_ocean.jpg b/public/home/under_ocean.jpg deleted file mode 100644 index 22e2432..0000000 Binary files a/public/home/under_ocean.jpg and /dev/null differ diff --git a/public/home/under_ocean2.jpg b/public/home/under_ocean2.jpg deleted file mode 100644 index 2e159f6..0000000 Binary files a/public/home/under_ocean2.jpg and /dev/null differ diff --git a/public/home/under_ocean3.png b/public/home/under_ocean3.png deleted file mode 100644 index b803a18..0000000 Binary files a/public/home/under_ocean3.png and /dev/null differ diff --git a/public/home/wamv_banner_large.webp~ b/public/home/wamv_banner_large.webp~ deleted file mode 100644 index ec7a18c..0000000 Binary files a/public/home/wamv_banner_large.webp~ and /dev/null differ diff --git a/public/home/wamv_banner_small.webp~ b/public/home/wamv_banner_small.webp~ deleted file mode 100644 index 62f4e55..0000000 Binary files a/public/home/wamv_banner_small.webp~ and /dev/null differ diff --git a/public/projects/robosub/firmware.webp b/public/projects/robosub/firmware.webp new file mode 100644 index 0000000..cf9bb6a Binary files /dev/null and b/public/projects/robosub/firmware.webp differ diff --git a/public/projects/robosub/soldering.webp b/public/projects/robosub/soldering.webp new file mode 100644 index 0000000..adc6fc4 Binary files /dev/null and b/public/projects/robosub/soldering.webp differ diff --git a/public/projects/robosub/sub2026banner.webp b/public/projects/robosub/sub2026banner.webp new file mode 100644 index 0000000..f57fed7 Binary files /dev/null and b/public/projects/robosub/sub2026banner.webp differ diff --git a/src/components/about/About.tsx b/src/components/about/About.tsx index 0c0dc87..eb7246d 100644 --- a/src/components/about/About.tsx +++ b/src/components/about/About.tsx @@ -51,7 +51,7 @@ export default function About() { - + {/* diff --git a/src/components/projects/robosub/AUV.tsx b/src/components/projects/robosub/2025/AUV.tsx similarity index 98% rename from src/components/projects/robosub/AUV.tsx rename to src/components/projects/robosub/2025/AUV.tsx index 036ab1b..1316e2b 100644 --- a/src/components/projects/robosub/AUV.tsx +++ b/src/components/projects/robosub/2025/AUV.tsx @@ -1,5 +1,5 @@ import { Box, Container, Grid, Typography } from "@mui/material"; -import { StandardLine } from "../../misc/line"; +import { StandardLine } from "../../../misc/line"; export default function AUV() { diff --git a/src/components/projects/robosub/Competition.tsx b/src/components/projects/robosub/2025/Competition.tsx similarity index 97% rename from src/components/projects/robosub/Competition.tsx rename to src/components/projects/robosub/2025/Competition.tsx index c2828c5..9466a67 100644 --- a/src/components/projects/robosub/Competition.tsx +++ b/src/components/projects/robosub/2025/Competition.tsx @@ -1,5 +1,5 @@ import { Box, Container, Grid, Typography } from "@mui/material"; -import { StandardLine } from "../../misc/line"; +import { StandardLine } from "../../../misc/line"; export default function Competition() { diff --git a/src/components/projects/robosub/Electrical.tsx b/src/components/projects/robosub/2025/Electrical.tsx similarity index 97% rename from src/components/projects/robosub/Electrical.tsx rename to src/components/projects/robosub/2025/Electrical.tsx index 49b218e..83d78b0 100644 --- a/src/components/projects/robosub/Electrical.tsx +++ b/src/components/projects/robosub/2025/Electrical.tsx @@ -1,6 +1,6 @@ import { Box, Container, Grid, List, ListItem, Paper, Typography } from "@mui/material"; -import { StandardLine } from "../../misc/line"; -import { PrimaryLink } from "../../misc/links"; +import { StandardLine } from "../../../misc/line"; +import { PrimaryLink } from "../../../misc/links"; export default function Electrical() { diff --git a/src/components/projects/robosub/FirstBanner.tsx b/src/components/projects/robosub/2025/FirstBanner.tsx similarity index 100% rename from src/components/projects/robosub/FirstBanner.tsx rename to src/components/projects/robosub/2025/FirstBanner.tsx diff --git a/src/components/projects/robosub/Main.tsx b/src/components/projects/robosub/2025/Main.tsx similarity index 100% rename from src/components/projects/robosub/Main.tsx rename to src/components/projects/robosub/2025/Main.tsx diff --git a/src/components/projects/robosub/Mechanical.tsx b/src/components/projects/robosub/2025/Mechanical.tsx similarity index 97% rename from src/components/projects/robosub/Mechanical.tsx rename to src/components/projects/robosub/2025/Mechanical.tsx index 7f022b9..6730e3a 100644 --- a/src/components/projects/robosub/Mechanical.tsx +++ b/src/components/projects/robosub/2025/Mechanical.tsx @@ -1,6 +1,6 @@ import { Box, Container, Grid, List, ListItem, Paper, Typography } from "@mui/material"; -import { StandardLine } from "../../misc/line"; -import { PrimaryLink } from "../../misc/links"; +import { StandardLine } from "../../../misc/line"; +import { PrimaryLink } from "../../../misc/links"; export default function Mechanical() { diff --git a/src/components/projects/robosub/Software.tsx b/src/components/projects/robosub/2025/Software.tsx similarity index 97% rename from src/components/projects/robosub/Software.tsx rename to src/components/projects/robosub/2025/Software.tsx index c581c30..edca6a5 100644 --- a/src/components/projects/robosub/Software.tsx +++ b/src/components/projects/robosub/2025/Software.tsx @@ -1,6 +1,6 @@ import { Box, Container, Grid, List, ListItem, Paper, Typography } from "@mui/material"; -import { StandardLine } from "../../misc/line"; -import { PrimaryLink } from "../../misc/links"; +import { StandardLine } from "../../../misc/line"; +import { PrimaryLink } from "../../../misc/links"; export default function Software() { diff --git a/src/components/projects/robosub/TeamRoster.tsx b/src/components/projects/robosub/2025/TeamRoster.tsx similarity index 96% rename from src/components/projects/robosub/TeamRoster.tsx rename to src/components/projects/robosub/2025/TeamRoster.tsx index 60349d8..dc0d031 100644 --- a/src/components/projects/robosub/TeamRoster.tsx +++ b/src/components/projects/robosub/2025/TeamRoster.tsx @@ -1,5 +1,5 @@ import { Box, Container, Grid, Typography } from "@mui/material"; -import { StandardLine } from "../../misc/line"; +import { StandardLine } from "../../../misc/line"; const roster = [ 'Shawn Coutinho', 'Sean Fish', 'Mitchell Turton', 'John Beeson', diff --git a/src/components/projects/robosub/2026/Electrical.tsx b/src/components/projects/robosub/2026/Electrical.tsx new file mode 100644 index 0000000..5b753d2 --- /dev/null +++ b/src/components/projects/robosub/2026/Electrical.tsx @@ -0,0 +1,149 @@ +import { Box, Container, Grid, List, ListItem, Typography, Button } from "@mui/material"; +import { StandardLine } from "../../../misc/line"; + +export default function Electrical() { + return ( + + + {/* TOP LINE */} + + + + + + + {/* TEXT (LEFT) */} + + + + + Electrical Design + + + + + + {[ + "Electrically isolated Computation and Thruster Power Systems", + "In-house developed motor control board and circuit protection boards", + "Extendable interior drawer to facilitate access and maintenance", + "External battery housing for improved test-flow and modularity" + ].map((text, idx) => ( + + + {text} + + + ))} + + + {/* CTA */} + + + + + + + + {/* IMAGE (RIGHT) */} + + + + + + + + {/* BOTTOM LINE */} + + + + ); +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/Firmware.tsx b/src/components/projects/robosub/2026/Firmware.tsx new file mode 100644 index 0000000..82e7c6a --- /dev/null +++ b/src/components/projects/robosub/2026/Firmware.tsx @@ -0,0 +1,154 @@ +import { Box, Container, Grid, List, ListItem, Typography, Button } from "@mui/material"; +import { StandardLine } from "../../../misc/line"; + +export default function Firmware() { + return ( + + + {/* TOP LINE */} + + + + + + {/* IMAGE (NOW LEFT) */} + + + + + {/* TEXT (NOW RIGHT) */} + + + + + Firmware Design + + + + + + {[ + "Modular and Reconfigurable Firmware Codebase supporting multiple projects", + "Robust Testing Framework with Python Testing Scripts to drive Protobuf inputs and Pico Probe", + "Custom Hardware Abstraction Layer level control and interface with ProtoBuf for communication with computer", + "Object Oriented Programming concepts for inheritance of different swappable modules" + ].map((text, idx) => ( + + + {text} + + + ))} + + + {/* CTA */} + + + + + + + + + + + {/* BOTTOM LINE */} + + + + ); +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/FirstBanner.tsx b/src/components/projects/robosub/2026/FirstBanner.tsx new file mode 100644 index 0000000..d4c2ffc --- /dev/null +++ b/src/components/projects/robosub/2026/FirstBanner.tsx @@ -0,0 +1,30 @@ +import { Box, Typography, useMediaQuery } from "@mui/material"; +import { useTheme } from '@mui/material/styles' + +export default function FirstBanner() { + + const theme = useTheme() + const small = useMediaQuery(theme.breakpoints.down('sm')) + + return ( + + + + + + RoboSub 2026 + + + + + ) +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/Main.tsx b/src/components/projects/robosub/2026/Main.tsx new file mode 100644 index 0000000..b47abc1 --- /dev/null +++ b/src/components/projects/robosub/2026/Main.tsx @@ -0,0 +1,24 @@ +import { Box } from "@mui/material"; +import FirstBanner from "./FirstBanner"; +//import Competition from "./Competition"; +import VehicleOverview from "./VehicleOverview"; +import Mechanical from "./Mechanical"; +import Electrical from "./Electrical"; +import Software from "./Software"; +import Firmware from "./Firmware"; +import TeamRoster from "./TeamRoster"; + +export default function Main() { + + return ( + + + + + + + + + + ) +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/Mechanical.tsx b/src/components/projects/robosub/2026/Mechanical.tsx new file mode 100644 index 0000000..7eef31a --- /dev/null +++ b/src/components/projects/robosub/2026/Mechanical.tsx @@ -0,0 +1,182 @@ +import { Box, Container, Grid, List, ListItem, Typography, Button } from "@mui/material"; +import { StandardLine } from "../../../misc/line"; + +export default function Mechanical() { + return ( + + + {/* TOP DUAL WAVE */} + + + {/* NAVY BACKGROUND */} + + + {/* LIGHT BLUE WAVE */} + + + + + + {/* TOP STRIPE (BEIGE LINE) */} + + + + + + {/* IMAGE */} + + + + + {/* CONTENT */} + + + + + Mechanical Design + + + + + + {[ + "X-Drive thruster configuration for maneuverability and sway", + "Cast acrylic hull with polycarbonate guide rails to efficiently mount subsystems and facilitate future development", + "Custom printed mounting solutions with attention to weight balance and buoyancy", + "In-progress development of autonomous torpedos with on-board visual processing and control" + ].map((text, idx) => ( + + + {text} + + + ))} + + + + + + + + + + + + {/* BOTTOM LINE */} + + + + ); +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/Software.tsx b/src/components/projects/robosub/2026/Software.tsx new file mode 100644 index 0000000..a6ad399 --- /dev/null +++ b/src/components/projects/robosub/2026/Software.tsx @@ -0,0 +1,188 @@ +import { Box, Container, Grid, List, ListItem, Typography, Button } from "@mui/material"; +import { StandardLine } from "../../../misc/line"; + +export default function Software() { + return ( + <> + {/* ===== OFF-WHITE SECTION ===== */} + + {/* TOP STRIPE */} + + + + + + {/* CONTENT (LEFT) */} + + + + + Software Design + + + + + + {[ + "Code written in Python and C++ within the ROS 2 framework", + "Gazebo simulation environment used for rapid software development in parallel with physical development", + "Microstrain IMU and WaterLinked DVL A50 used for robotic localization", + "Stereo camera and Sonoptix multibeam sonar used for perception and mapping with yolo detections and pointcloud processing" + ].map((text, idx) => ( + + + {text} + + + ))} + + + + + + + + + + {/* IMAGE (RIGHT) */} + + + + + + + + + {/* ===== BOTTOM LINE ===== */} + + + {/* ===== TWO-TONE WAVE (LIGHT → DARK BLUE) ===== */} + + + {/* DARK BLUE BACKGROUND */} + + + {/* LIGHT BLUE WAVE */} + + + + + + + {/* ===== DARK BLUE SECTION ===== */} + + + ); +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/TeamRoster.tsx b/src/components/projects/robosub/2026/TeamRoster.tsx new file mode 100644 index 0000000..19755bc --- /dev/null +++ b/src/components/projects/robosub/2026/TeamRoster.tsx @@ -0,0 +1,55 @@ +import { Box, Container, Grid, Typography } from "@mui/material"; +import { StandardLine } from "../../../misc/line"; + +const roster = [ + 'Olivia Taylor', 'Sean Fish', 'Mitchell Turton', 'John Beeson', + 'Matthew Woodward', 'Em Paul', 'Mahika Maini', 'Nathan Xie', 'Ariana Litchford', + 'Jason Hsiao', 'Armando Rolon-Loperena', 'Thomas Devlin', 'Giana Claros', 'Allie Bulot', + 'Thalia Papageorgiou', 'James Pope', 'Sophia Ho', 'Sasanka Polisetti', 'Kieran Abbott', + 'Peyton Lee', 'Liam Wansang', 'Nick Lai', 'Paul Kupronis', 'Nahreen Shamon Ayala' +]; + +export default function TeamRoster() { + + return ( + <> + {/* ===== ROSTER SECTION ===== */} + + + + + 2026 Team Roster + + + + + + + + + + {roster.map(person => ( + + + + {person} + + + + ))} + + + + + + {/* ===== BLUE FOOTER SPACE ===== */} + + + ); +} \ No newline at end of file diff --git a/src/components/projects/robosub/2026/VehicleOverview.tsx b/src/components/projects/robosub/2026/VehicleOverview.tsx new file mode 100644 index 0000000..546ad35 --- /dev/null +++ b/src/components/projects/robosub/2026/VehicleOverview.tsx @@ -0,0 +1,91 @@ +import { Box, Container, Grid, Typography } from "@mui/material"; +import { StandardLine } from "../../../misc/line"; + +export default function VehicleOverview() { + return ( + + + + {/* TITLE */} + + + Vehicle Overview + + + + {/* DIVIDER */} + + + + + {/* MAIN CONTENT */} + + + {/* VIDEO */} + + +