© 2026 Naveen Kumar Pendyam. All rights reserved.

contact@nkpendyam.me
GitHubLinkedInBlogContact
    All posts
    portfolio
    spline
    nextjs
    3d

    Building a 3D Portfolio with Spline and Next.js

    Naveen Kumar Pendyam
    Wednesday, June 10, 2026
    1 min read

    Building a 3D Portfolio with Spline and Next.js

    Spline is a no-code 3D editor that exports .splinecode scenes you can drop into a Next.js app. I used it to build the keyboard centerpiece on this site.

    The Setup

    The scene is a .splinecode file in public/assets/. It's lazy-loaded via React.lazy and rendered with @splinetool/react-spline inside a position: fixed canvas behind all content.

    The Hard Part

    A 350 KB binary file blocks first paint if you let it. The fix is two-fold: delay the load until the rest of the page is interactive, and preload the asset via <link rel="preload"> so it's already in cache when the runtime imports it.

    What I Learned

    GSAP + ScrollTrigger drive the scene transitions between sections. The trick is to clean up triggers on unmount or you get ghost listeners. ContextZip helped here — when scroll-triggered animations misfire, the output of gsap.utils.getAll() is huge, and ContextZip trims it to the meaningful 1%.

    More on this soon. 🚀

    Related posts

    Achieving Milestone: Adding Blogs Section

    A humorous take on the monumental task of adding a blog section to my portfolio.

    How I built a brain tumor detector (with a lot of AI help)

    A BCA student's honest write-up of building a multi-stage MRI analysis pipeline — YOLO, an ensemble of vision models, Grad-CAM, and a healthy fear of saying it's a medical device.

    Building LumaTorrent: a desktop app where I had to learn Rust and Tauri at the same time

    A safety-first torrent client for legal file distribution. What I learned about engine boundaries, why mock sidecars are useful, and how AI helped me survive Rust's borrow checker.

    Back to all posts