-
Notifications
You must be signed in to change notification settings - Fork 0
Components to open source
Vincent Fretin worked on some experiences like this car showroom or multi-users kitchen showroom and developed lots of A-Frame components along the way. Most of the fixes and new features to existing components were contributed to the existing repositories already. There is a lot of components that could be open sourced for you to use in your existing projects if there is enough monthly sponsors to work on it. You can find some of the tasks you can sponsor on the board.
Here is list of components that are used in the above experiences.
- aframe core (49+ contributions since 2017)
- @fern-solutions/aframe-mirror
- aabb-collider (6 contributions)
- aframe-blink-controls (2 contributions)
- aframe-extras's movement-controls (gamepad,keyboard,nipple) (14+ contributions to aframe-extras repo)
- agent-movement (new) using aframe-extras's pathfinding
- ai-agent (new)
- animation-buttons (new)
- animation-mixer
- attach-to-bone (new)
- attach-to-mediaframe (new)
- networked-audio-analyser (new, modified hubs code)
- billboard (new but different than hubs billboard component)
- change-room (new)
- change-scene (new)
- close-modal-on (new)
- cursor-teleport (3+ contributions with additional changes to sponsor)
- environment (9 contributions)
- environment-settings (new)
- event-set (1 contribution)
- exit-on, used to exit VR with hands
- gltf-model-plus (gtlf-model is an alias to it), modified to clean up resources, supports loading some hubs extensions like waypoint (my own implementation), nav-mesh (using simple-navmesh-constraint), media-frame (my own implementation), uv-scroll (hubs code modified to work with aframe system), loop-animation (simplified hubs implementation), environment-settings (my own implementation with some hubs code), lightmaps and reflection-probe (hubs code + hubs threejs patch). Some components like uv-scroll, loop-animation are used directly on a threejs node and aframe API compatibility is done via a FakeEntity object attached to node.el, no a-entity DOM element or intermediate THREE.Group is created. See Blender hubs components compatibility.
- handy-controls (1 contribution)
- haptics (with a change to support handy-controls, using it on htmlmesh buttons on hover) (1 contribution)
- htmlmesh (with all my draft PRs, you can sponsor me so I can finish the hover PR and the text wrapping PR)
- instanced-mesh (used automatically when you use gltf-model with the same url)
- layers (modified to make it recursive with el.object3D.traverse, this is needed for a gltf-model, also listen to object3dset to update again.)
- load360onclick (new)
- look-at
- material-values (new, used for color selector)
- media-frame (new)
- move-to-waypoint (new)
- networked-aframe (43+ contributions) with naf-janus-adapter (17+ contributions) / janus-plugin-sfu (4+ contributions)
- networked-video-source (heavily modified, for screen share on a 2d media-frame)
- object-info-panel (new)
- open-modal-on (new)
- open-url-on-click (new)
- orbit-controls
- particle-fire (new, 1 contribution to three-particle-fire repo, sponsor it)
- physx (2 contributions)
- player-info/character-controller to handle avatar animations
- point-cloud (new)
- rounded (used for nametag with the fix to center the text)
- scene-switcher (new, dynamically load another scene without disconnecting the users in the room, with async loading of gtlf-model including a model-loader component that shows a blue flame with particle-fire)
- shortcuts (new)
- simple-navmesh-constraint (7+ contributions to aframe-xr-boilerplate repo, sponsor creating a separate repo)
- simple-water (hubs code)
- sphere-collider used to exit VR with hands
- stereo (used via the load360onclick component, supports also stereo image top/bottom, see changes)
- teleporter (new)
- uv-scroll (modified hubs code)
- vox-model (new)
- waypoint (new)
Note that some new components may depend on a solidjs signal used with the UI so may not be easily open sourced in a separate repo.
About the UI part:
- Create a web component to show connected users and more...
- Dynamically generated QR codes you see in info panel is using the excellent Nayuki's qrcode generator typescript library.
Models:
- Scene and lights baking with blender and hubs-blender-exporter
- Fullbody avatars are generated AvatarSDK MetaPerson 1.0 from thispersondoesnotexist photos with mixamo converted animations
The long term idea is to have a monthly or annual subscription on my platform to easily create an A-Frame experience with aframe-editor and a set of curated aframe components at your disposal. I'll write a list of what is currently available on my platform with documentation when I'll have the editor with save and export working.
Some advanced features (multiusers with a sfu (currently janus but livekit with server audio recording soon), ai agents with gpt-3.5 and soon gpt-4 with coqui-tts, e-learning features, realistic avatars, specialized assets library, blender server baking of your scene) would require a subscription and be hosted on my platform. If you don't need those features, that would be the Free tier (with limited multiusers and limited storage, tts via speechSynthesis api so not working in VR).
I know some of you want to own the experience and self host it, so for this case, you'll be able to export the experience in aframe html format with released versions of the third party components, so you can self host it and continue working on it in html on glitch if you want, but with simple multiusers with easyrtc, tts via speechSynthesis api. If you need lots of users in your room, you can self host the janus sfu, I open sourced my janus docker image with documentation already.