- 💻 Examples (wip) : https://troisjs.github.io/ (sources)
- 📖 Doc (wip) : https://troisjs.github.io/guide/ (repo)
- 🚀 Codepen examples : https://codepen.io/collection/AxoWoz
I wanted to code something similar to react-three-fiber but for VueJS.
I started from scratch, I will rewrite some of my WebGL demos to see if this little toy can do the job.
Trois is a french word, it means Three.
TroisJS is really simple and easy to use :
<div id="app"> <renderer ref="renderer" antialias orbit-ctrl resize="window"> <camera :position="{ z: 10 }"></camera> <scene> <point-light :position="{ y: 50, z: 50 }"></point-light> <box ref="box" :rotation="{ y: Math.PI / 4, z: Math.PI / 4 }"> <lambert-material></lambert-material> </box> </scene> </renderer> </div> <script type="module"> import { createApp } from 'https://unpkg.com/troisjs@0.2.3/build/trois.module.cdn.min.js'; createApp({ mounted() { const renderer = this.$refs.renderer; const box = this.$refs.box.mesh; renderer.onBeforeRender(() => { box.rotation.x += 0.01; }); } }).mount('#app');; </script>Read more on https://troisjs.github.io/guide/
Thanks to VueJS/ViteJS, TroisJS use watchers and HMR to update ThreeJS objects when you update a template or a prop. This means the result in your browser will be automatically updated without reloading all the stuff. This is really helpful when you are creating a TroisJS Scene.
Take a look at examples : https://troisjs.github.io/
- Lights
- AmbientLight
- DirectionalLight
- HemisphereLight
- PointLight
- RectAreaLight
- SpotLight
- Materials
- Basic
- Lambert
- Mapcap
- Phong
- Physical
- Shader
- Standard
- SubSurface
- Toon
- Geometries
- Box
- Circle
- Cone
- Cylinder
- Dodecahedron
- Icosahedron
- Lathe
- Octahedron
- Polyhedron
- Ring
- Sphere
- Tetrahedron
- Torus
- TorusKnot
- Tube
- Post Processing
- EffectComposer
- BokehPass
- FilmPass
- FXAAPass
- HalftonePass
- Renderpass
- SMAAPass
- SSAOPass
- UnrealBloomPass
- TiltShiftPass
- ZoomBlurPass
- EffectComposer











