DEV Community

Aravindhan
Aravindhan

Posted on

From Hackathon Pain Point to NPM Package: Introducing react-markerless-ar โ€“ A Markerless 3D AR Viewer in React

Image description
Hey Devs! ๐Ÿ‘‹
Iโ€™m excited to share something I built out of pure necessity during a hackathon โ€” and itโ€™s now a fully published NPM package! ๐Ÿ“ฆ

๐Ÿงฉ The Problem
During my second year in college, my team participated in Make-a-Thon 5.0, where we wanted to use AR to display 3D objects. Unfortunately, we had to rely on third-party platforms because integrating AR directly into our app felt overly complex at the time.

Fast forward to RotaTechX, another hackathon organized by the Rotaract Clubs of SVCE. Faced with the same challenge, I decided not to rely on external tools again โ€” and thatโ€™s how this component was born.

๐Ÿš€ Introducing @cow-the-great/react-markerless-ar
A fully customizable React component library that lets you render .glb/.gltf 3D models in a markerless AR-like experience directly in the browser using your webcam feed. Built with React Three Fiber and Three.js, it works seamlessly with minimal setup.

๐Ÿ“ฆ NPM:
@cow-the-great/react-markerless-ar

๐Ÿ’ป GitHub Repo:
github.com/CowTheGreat/3d-Modal-Marker-Less-Ar-Viewer

โœจ Features

  • ๐Ÿ“ท Markerless AR simulation (camera feed background)
  • ๐Ÿงฑ Components: ModelViewer (static), AnimationViewer (animated)
  • โš™๏ธ Fully customizable via props (camera, lighting, controls, model, background)
  • ๐Ÿ› ๏ธ No need for external SDKs or markers
  • ๐ŸŒ Works entirely in-browser
import {
  ModelViewer,
  AnimationViewer,
} from "@cow-the-great/react-markerless-ar";

<AnimationViewer
  modelPath="model.glb"
  width="100vw"
  height="100vh"
  cameraProps={{ position: [0, 2, 5], fov: 60 }}
  lightingProps={{ ambientLightIntensity: 0.8, directionalLightPosition: [5, 5, 5] }}
  modelProps={{ scale: 2, position: [0, 0, 0] }}
  backgroundProps={{ enableCamera: true, planeSize: 30 }}
/>

Enter fullscreen mode Exit fullscreen mode

๐Ÿ‘ฅ Looking for Feedback
This is just v1.0.0 and Iโ€™m hoping to improve it with community feedback!
Try it out, break it, tweak it, and if youโ€™re interested in contributing โ€” Iโ€™d love that! ๐Ÿ˜Š

Feel free to open issues or submit PRs if you have ideas or fixes.

Thanks for reading!
Letโ€™s keep building cool things ๐Ÿ’ก

Top comments (0)