diff --git a/src/assets/background.svg b/src/assets/background.svg deleted file mode 100644 index 4b2be0a..0000000 --- a/src/assets/background.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/future/durations.avif b/src/assets/future/durations.avif new file mode 100644 index 0000000..7e279b3 Binary files /dev/null and b/src/assets/future/durations.avif differ diff --git a/src/assets/future/parallax.avif b/src/assets/future/parallax.avif new file mode 100644 index 0000000..b3dbefb Binary files /dev/null and b/src/assets/future/parallax.avif differ diff --git a/src/assets/manipulators/mis-rig.avif b/src/assets/manipulators/mis-rig.avif new file mode 100644 index 0000000..5bf0c93 Binary files /dev/null and b/src/assets/manipulators/mis-rig.avif differ diff --git a/src/assets/manipulators/scientifica-manipulator.avif b/src/assets/manipulators/scientifica-manipulator.avif new file mode 100644 index 0000000..d305e14 Binary files /dev/null and b/src/assets/manipulators/scientifica-manipulator.avif differ diff --git a/src/assets/outreach/teaching-pinpoint.avif b/src/assets/outreach/teaching-pinpoint.avif new file mode 100644 index 0000000..724e908 Binary files /dev/null and b/src/assets/outreach/teaching-pinpoint.avif differ diff --git a/src/assets/outreach/using-pinpoint.avif b/src/assets/outreach/using-pinpoint.avif new file mode 100644 index 0000000..6151d10 Binary files /dev/null and b/src/assets/outreach/using-pinpoint.avif differ diff --git a/src/assets/people/dan.avif b/src/assets/people/dan.avif new file mode 100644 index 0000000..16cb7a2 Binary files /dev/null and b/src/assets/people/dan.avif differ diff --git a/src/assets/people/jasmine.avif b/src/assets/people/jasmine.avif new file mode 100644 index 0000000..49114a0 Binary files /dev/null and b/src/assets/people/jasmine.avif differ diff --git a/src/assets/people/kai.avif b/src/assets/people/kai.avif new file mode 100644 index 0000000..bc8cece Binary files /dev/null and b/src/assets/people/kai.avif differ diff --git a/src/assets/people/kenneth.avif b/src/assets/people/kenneth.avif new file mode 100644 index 0000000..e25e375 Binary files /dev/null and b/src/assets/people/kenneth.avif differ diff --git a/src/assets/people/qiqi.avif b/src/assets/people/qiqi.avif new file mode 100644 index 0000000..f9bc8f2 Binary files /dev/null and b/src/assets/people/qiqi.avif differ diff --git a/src/assets/people/selina.avif b/src/assets/people/selina.avif new file mode 100644 index 0000000..853ac9c Binary files /dev/null and b/src/assets/people/selina.avif differ diff --git a/src/components/Graphics.astro b/src/components/Graphics.astro index 475ccfd..8783ba6 100644 --- a/src/components/Graphics.astro +++ b/src/components/Graphics.astro @@ -26,6 +26,9 @@ const { imageMetadatas } = Astro.props; throw new Error("Failed to get output image element"); })(); + // Keep track of the last rendered image. + let lastRenderedIndex = -1; + // Bind scroll event to draw images. window.addEventListener("scroll", () => { // Get the container bounds at this point. @@ -46,8 +49,16 @@ const { imageMetadatas } = Astro.props; ); // Draw it if we are in bound. - if (imageIndex >= 0 && imageIndex < numberOfImages) + if (imageIndex >= 0 && imageIndex < numberOfImages) { requestAnimationFrame(() => outputImage.src = imageSrcs[imageIndex]); + lastRenderedIndex = imageIndex; + } + // If we are out of bounds, and we haven't fixed it yet, fix it. + else if (imageIndex !== lastRenderedIndex) { + const clampedIndex = Math.max(0, Math.min(numberOfImages - 1, imageIndex)); + requestAnimationFrame(() => outputImage.src = imageSrcs[clampedIndex]); + lastRenderedIndex = clampedIndex; + } }); } } diff --git a/src/pages/index.astro b/src/pages/index.astro index 7f8ec0c..efc2e05 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -8,9 +8,20 @@ import Graphics from "../components/Graphics.astro"; import GraphicsImporter from "../scripts/graphics-importer"; import type { DefaultImageMetadata } from "../scripts/types"; +import Durations from "../assets/future/durations.avif"; +import Parallax from "../assets/future/parallax.avif"; // Import static images. +import MISRig from "../assets/manipulators/mis-rig.avif"; import MPMRig from "../assets/manipulators/mpm-rig.avif"; +import ScientificaManipulator from "../assets/manipulators/scientifica-manipulator.avif"; import SensapexRig from "../assets/manipulators/sensapex-rig.avif"; +import TeachingPinpoint from "../assets/outreach/teaching-pinpoint.avif"; +import UsingPinpoint from "../assets/outreach/using-pinpoint.avif"; +import Jasmine from "../assets/people/jasmine.avif"; +import Kai from "../assets/people/kai.avif"; +import Kenneth from "../assets/people/kenneth.avif"; +import Qiqi from "../assets/people/qiqi.avif"; +import Selina from "../assets/people/selina.avif"; // Import graphics. const introImporter = new GraphicsImporter( @@ -37,43 +48,49 @@ const automationImporter = new GraphicsImporter(
Modern neuroscientists need tools that enable the study of the whole brain to better - understand - human behavior and cure neurodegenerative diseases that affect the whole brain like - Parkinson's - and Alzheimer's.
-Modern neuroscientists need tools that enable the study of the whole brain to better + understand + human behavior and cure neurodegenerative diseases that affect the whole brain like + Parkinson's + and Alzheimer's.
+Sensapex Multiprobe rig
+New Scale MPM rig
+New Scale MIS rig
+Scientifica InVivoStar Micromanipulator
+Below: Sensapex Multiprobe in vivo rig and New Scale MPM rig.
-Parallax computer vision tracking system. Two electrophysiology probes are tracked and marked + with red crosses.
+Automation is measurably faster than traditional methods. The red dot is the median duration of + automated 2-probe electrophysiology insertion which is significantly lower than the median + duration for manual insertions.
+The reduction in human error and increase in efficiency will enable neuroscientists to scale + up + their work to new heights, unlocking studies and surgeries previously deemed impossible.
+Dr. Birman teaching Pinpoint to researchers at the Allen Institute 2024 Neuropixels and OpenScope + Workshop
+A workshop attendee using Pinpoint in their laptop browser
+