Observed since 20 Oct, 19:36 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
3d-marquee
A React library featuring a 3D rotating orb with a scrolling LED marquee effect. The word scrolls horizontally across the center band of the sphere, creating a seamless ticker display.
A React library featuring a 3D rotating orb with a scrolling LED marquee effect. The word scrolls horizontally across the center band of the sphere, creating a seamless ticker display.

Install the package:
npm install 3d-marquee
Note: With npm 7+ and yarn, peer dependencies are automatically installed. If you're using npm 6 or earlier, you'll need to install the peer dependencies manually:
npm install 3d-marquee react react-dom three @react-three/fiber @react-three/drei @react-three/postprocessing
The following peer dependencies are required and will be automatically installed with npm 7+:
react: ^18.0.0 || ^19.0.0react-dom: ^18.0.0 || ^19.0.0three: >=0.158.0@react-three/fiber: ^8.15.11 || ^9.0.0@react-three/drei: ^9.92.7 || ^10.0.0@react-three/postprocessing: ^2.15.9 || ^3.0.0Import and use the LedMarqueeOrbContainer component:
import { LedMarqueeOrbContainer } from '3d-marquee'
function App() {
return (
<div style={{ width: '100vw', height: '100vh' }}>
<LedMarqueeOrbContainer
word="Hello World"
speed={0.1}
dimColor="red"
brightColor="blue"
/>
</div>
)
}
If you're using Vite, add this to your vite.config.ts to ensure React is properly deduplicated:
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
export default defineConfig({
plugins: [react()],
resolve: {
dedupe: ['react', 'react-dom'],
},
optimizeDeps: {
include: ['react', 'react-dom', '@react-three/fiber', '@react-three/drei', '@react-three/postprocessing'],
},
})
LedMarqueeOrbContainerThe main component that includes the Canvas, lighting, controls, and post-processing effects.
Props:
word (string, required): The text to display on the marqueespeed (number, required): Scroll speed multiplier (higher = faster)dimColor (string, required): Color for inactive LEDs (e.g., "#1a261a" or "red")brightColor (string, required): Color for active LEDs (e.g., "#00ff4d" or "blue")radius (number, optional, default: 1): Sphere radiusledSpacing (number, optional, default: 0.0075): Spacing between LED dotscolumnSpacing (number, optional, default: 0.005): Spacing between columnsLedMarqueeOrbThe core orb component (used internally by LedMarqueeOrbContainer). You can use this directly if you need more control over the Canvas setup.
Props:
Same as LedMarqueeOrbContainer, but all props are optional with defaults.
To build the library for distribution:
npm run build:lib
This creates the distribution files in the dist/ directory.
To run the demo/example application:
npm run dev
The application will be available at http://localhost:5173 (or the port shown in the terminal).
Build the production bundle:
npm run build
Preview the production build:
npm run preview
The LED marquee effect is implemented using a custom shader material that:
MIT
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
viteEnvironment{
"local_name": "vite",
"alias": false,
"peer_metadata": null
} | ^5.0.8 | development |
reactEnvironment{
"local_name": "react",
"alias": false,
"peer_metadata": null
} | ^19.2.0 | development |
threeEnvironment{
"local_name": "three",
"alias": false,
"peer_metadata": null
} | >=0.158.0 | development |
react-domEnvironment{
"local_name": "react-dom",
"alias": false,
"peer_metadata": null
} | ^19.2.0 | development |
typescriptEnvironment{
"local_name": "typescript",
"alias": false,
"peer_metadata": null
} | ^5.2.2 | development |
@types/nodeEnvironment{
"local_name": "@types/node",
"alias": false,
"peer_metadata": null
} | ^25.0.3 | development |
@types/reactEnvironment{
"local_name": "@types/react",
"alias": false,
"peer_metadata": null
} | ^19.2.5 | development |
@types/threeEnvironment{
"local_name": "@types/three",
"alias": false,
"peer_metadata": null
} | ^0.158.3 | development |
@types/react-domEnvironment{
"local_name": "@types/react-dom",
"alias": false,
"peer_metadata": null
} | ^19.2.3 | development |
@react-three/dreiEnvironment{
"local_name": "@react-three/drei",
"alias": false,
"peer_metadata": null
} | ^10.7.7 | development |
@react-three/fiberEnvironment{
"local_name": "@react-three/fiber",
"alias": false,
"peer_metadata": null
} | ^9.4.2 | development |
@vitejs/plugin-reactEnvironment{
"local_name": "@vitejs/plugin-react",
"alias": false,
"peer_metadata": null
} | ^5.1.1 | development |
@react-three/postprocessingEnvironment{
"local_name": "@react-three/postprocessing",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | development |
reactEnvironment{
"local_name": "react",
"alias": false,
"peer_metadata": null
} | ^18.2.0 || ^19.0.0 | peer |
threeEnvironment{
"local_name": "three",
"alias": false,
"peer_metadata": null
} | >=0.158.0 | peer |
react-domEnvironment{
"local_name": "react-dom",
"alias": false,
"peer_metadata": null
} | ^18.2.0 || ^19.0.0 | peer |
@react-three/dreiEnvironment{
"local_name": "@react-three/drei",
"alias": false,
"peer_metadata": null
} | ^9.92.7 || ^10.0.0 | peer |
@react-three/fiberEnvironment{
"local_name": "@react-three/fiber",
"alias": false,
"peer_metadata": null
} | ^8.15.11 || ^9.0.0 | peer |
@react-three/postprocessingEnvironment{
"local_name": "@react-three/postprocessing",
"alias": false,
"peer_metadata": null
} | ^2.15.9 || ^3.0.0 | peer |
Source distribution
{
"shasum": "8dfad9dfaffc7a3201a92d19e838d3fdac5bdae3",
"tarball": "https://registry.npmjs.org/3d-marquee/-/3d-marquee-0.2.0.tgz",
"fileCount": 11,
"integrity": "sha512-5gvNR5+0PnihxoPkFdQaSOx3xcXIqiKkYYBSM/2jzg74/AetvW+qa08QObl3lJRYCvog0DCqq3fw4D2OC6fLHA==",
"signatures": [
{
"sig": "MEYCIQDU/GKwyaOFKXifoKvfYqv5unPTybTlPWzMrEdTuIJSFwIhANrWu0DjCg+ZQQ06DRHQb4xliQ0w0sSho+QUxoVUZtzp",
"keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
}
],
"unpackedSize": 165299
}Observed since 20 Oct, 19:36 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:3a233ba67e14a8a61222830b52bb8e95b1afe1ebbd1b59c19b5c7cbb55730f4e