mozilla/hubs 870
Duck-themed multi-user virtual spaces in WebVR. Built with A-Frame.
ecsyjs/ecsy 730
Entity Component System for javascript
mozilla/Spoke 278
Easily create custom 3D environments
ECSY and three.js components, systems and helpers
ECSY Developer tools extension
networked-aframe Janus network adapter
chendo/cora 11
Interface-agnostic context and state-aware agent. Conceived for SiriProxy
startedadamws/kicad-kbplacer
started time in a day
push eventmozilla/reticulum
commit sha 4251e2fca23c8fba6f2a014cb62017073b6b14fd
Cleanup id token handling
push time in 2 days
startedperigoso/Switch_Keyboard
started time in 3 days
starteddiimdeep/awesome-split-keyboards
started time in 5 days
startedruiqimao/keyboard-pcb-guide
started time in 5 days
pull request commentmozilla/hubs
Fix uv-scroll graphical corrution
Thanks for the detailed bug report and this fix! Will get it deployed this week.
comment created time in 7 days
issue commentValveSoftware/Proton
For those having launcher issues. There exists a third party launcher called XIVLauncher that is much lighter weight and works great in wine. You will have to do your own judgment on if entering your credentials into a third party tool is acceptable to you, but the source code is made available on github to evaluate before you do. Not linking directly at it is unclear if it would be a TOS violation to use such a tool.
comment created time in 8 days
startedmanna-harbour/miryoku
started time in 9 days
startedmanna-harbour/qmk_firmware
started time in 10 days
issue closedmozilla/hubs
Hubs Cloud Upgrade new version in Digital Ocean
I have installed hubs cloud in DO, how to upgrade/update the new version after installation?
closed time in 16 days
doreaipush eventnetpro2k/Chrysalis
commit sha 8fa31e7c06fa0ab2b763dd85b2db149716895f3a
First pass at exporting multiple layer configs Signed-off-by: netpro2k <[email protected]>
push time in 17 days
PR opened keyboardio/Chrysalis
This is a bare minimum pass at implementing #562. The format is pretty verbose, but should be easy to iterate on later since it includes a version tag. Also, expanding db.parse and db.serialize should allow for reworking the representation of keys in a backwards compatible way.
Starting as a draft since I think it still needs some testing (don't have a keyboard with colormap support handy) as well as some discussion on the serialization format.
Current format looks like this:
{
"configVersion": 1,
"device": {
"vendor": "Keyboardio",
"product": "Atreus",
"displayName": "Keyboardio Atreus",
"urls": [{"name": "Homepage", "url": "https://atreus.technomancy.us/"}]
},
"palette": [
{"r": 255, "g": 0, "b": 0, "rgb": "rgb(255, 0, 0)"},
...
],
"defaultLayer": 0,
"layers": [
{
"keymap": [
{"keyCode": 20, "label": "Q"},
...
],
"colormap": [0, ...]
},
...
]
}
Including device info in there at the moment as it seems useful to know what you are looking at a config for (and for metadta if someone wanted to create something to manage sharing these configs). Also probably makes sense to sanity check the device matches the currently active device when importing (though I haven't done this yet). Could probably limit it down to just a product ID, but just grabbing the whole info object for now.
An example config for my currently layout (note the layout itself is pretty wonky, just got me Atreus today so still messing with it): https://gist.github.com/netpro2k/216489815889c492b68b0433d6771efa
Seems likely we want to do something with empty layers, but layer numbering needs to be preserved.
pr created time in 17 days
fork netpro2k/Chrysalis
Graphical configurator for Kaleidoscope-powered keyboards
https://github.com/keyboardio/Chrysalis#chrysalis
fork in 17 days
Pull request review commentmozilla/reticulum
Able to customize magic link login email message + subject from admin panel
server = {{ toToml cfg.email.server }} port = {{ toToml cfg.email.port }} username = {{ toToml cfg.email.username }} password = {{ toToml cfg.email.password }}+custom_email_subject = {{ toToml cfg.email.custom_email_subject }}
I forget what we found out with Slack config stuff, but don't we need to wrap this in a conditional otherwise a blank value will cause reticulum not to start up?
comment created time in 18 days
Pull request review commentmozilla/reticulum
Able to customize magic link login email message + subject from admin panel
defmodule RetWeb.Email do app_name = AppConfig.get_cached_config_value("translations|en|app-name") app_full_name = AppConfig.get_cached_config_value("translations|en|app-full-name") || app_name admin_email = Application.get_env(:ret, Ret.Account)[:admin_email]+ custom_login_subject = AppConfig.get_cached_config_value("auth|login_subject")
This is totally fine, and doesn't need changing, but (I think, not an elixir guru myself either) using a with expression here would be slightly more idomatic https://elixirschool.com/en/lessons/basics/control-structures/#with
comment created time in 18 days
Pull request review commentmozilla/reticulum
Able to customize magic link login email message + subject from admin panel
defmodule RetWeb.Email do end end + defp string_is_nil_or_empty(check_string) do+ check_string == nil || String.length(String.trim(check_string)) == 0+ end++ defp add_magic_link_to_custom_login_body(custom_message, signin_args) do
I might have just passed in the link here, or at least stuffed it in a variable to avoid doing it in both branches.
comment created time in 18 days
Pull request review commentmozilla/hubs
Added custom email + auth tab + multiline
function getCategoryDescription(category, provider) { return "Replace colors in the app."; case "links": return "Replace links in the app.";+ case "auth":
I would have first thought to put this in email settings. Looks like you thought so too with the email settings hints. Seems find to do this for now but eventually we might want to rework admin panel so that storage location is not tied to where we are showing it in the UI.
comment created time in 18 days
Pull request review commentmozilla/hubs
Added custom email + auth tab + multiline
links.issue_report = { category = "links", type = "string", name = "Issue Report links.promotion = { category = "links", type = "string", name = "Promotion Info", description = "Link to info about promotion info and licensing."} links.remixing = { category = "links", type = "string", name = "Remixing Info", description = "Link to info about remixing info and licensing."} links.model_collection = { category = "links", type = "string", name = "Model Collection", description = "Link to a collection of recommended models."}++auth.login_subject = { category = "auth", type="string", name="Magic Link Email Subject", description="Customize the email subject line for users logging in" }+auth.login_body = { category = "auth", type="longstring", name="Magic Link Email Body", description="Customize message. Add '{{ link }}' to insert the magic link, otherwise it will be appended at the end." }
Not sure what all parses this, we need to make sure they are also able to handle this new "type"...
comment created time in 18 days
issue commentmozilla/hubs
Ability to specify environment map for IBL
The linked Spoke issue just generates one from the skybox, but people have still asked to be able to set one manually. We should rack that either by re-opening this or making a new issue.
comment created time in 18 days
issue closedMozillaReality/hubs-docs
Add Search Bar to Documentation
The code to add the search bar to the Hubs documentation site (which I believe is here: https://github.com/MozillaReality/hubs-docs/blob/master/website/siteConfig.js#L60) is present but currently commented out. When we last looked into adding the search to the site, the code worked fine for local instances of the codebase but had CSP issues when deploying to the live site.
Adding search would likely reduce the number of questions that we get through other channels, since users would have an easier time looking through the current documentation to find an answer for their issues.
closed time in 18 days
missliviroseissue commentMozillaReality/hubs-docs
Add Search Bar to Documentation
Fixed by adding CSP rules for the js file and index search endpoints to reticulum. Seems hashes are not available for external scripts but it uses the absolute path so should be safe enough.
comment created time in 18 days
push eventmozilla/reticulum
commit sha 12324013163cc03fdc3671c84d19898b832ea711
Add doc search endpoint to connect-src
push time in 19 days
push eventmozilla/reticulum
commit sha 5598ce46cd93aa2573a287fdff66e2e2dd42bc41
No quotes
push time in 19 days
push eventmozilla/reticulum
commit sha 88cf94ad0fe4971423abe59fa2c00d779e605d3d
Just refer to docsearch by url in CSP
push time in 19 days
push eventmozilla/reticulum
commit sha 486e90c47419d6ca846a3556504caaf980b30663
Fix docsearch CSP
push time in 19 days
push eventmozilla/reticulum
commit sha 0d6413d19e670d9fbbe587bc2d7056b17a960317
Add CSP rules for docsearch
commit sha 50982646bcd0d5e323ec213fcbc0831ebc6d4a2f
Merge pull request #421 from mozilla/docsearch-csp Add CSP rules for docsearch
push time in 19 days
PR merged mozilla/reticulum
Add hashes for https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js and some inline script tags it uses on the doc site.
pr closed time in 19 days
PR opened mozilla/reticulum
Add hashes for https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js and some inline script tags it uses on the doc site.
pr created time in 19 days
push eventMozillaReality/hubs-docs
commit sha 31b1f837b8ded199d7bd747cc1ac81b758a121ec
Re-enable search
push time in 19 days
issue commentmozilla/hubs
It is worth noting that the current awkward spacing of the nametag is to accommodate the in-world volume controls. There is not any sort of hard technical reason the nametag couldn't be positioned differently in pause mode to accommodate them, but just worth thinking about.
comment created time in a month
issue commentmozilla/hubs
One other thing that came up recently is that we might want to be able to right click on the nametags to inspect. Right clicking on the avatars themselves to do this is problematic sine skinning makes determining avatar bounding boxes difficult, and also avatars can easily get in the way of other objects. Using the nametag (or part of it) would make this easier.
comment created time in a month
issue closedmozilla/Spoke
No Media Frame in Scene Editor
I have noticed that Spoke had an update and it added a Media Frame feature, but the same feature is not accessible in Scene editor.
closed time in a month
k888885issue commentmozilla/Spoke
No Media Frame in Scene Editor
We deploy changes to hubs cloud about once a month. This feature has not yet rolled out to Hubs Cloud. You can keep an eye on https://github.com/mozilla/hubs-cloud/blob/master/CHANGELOG.md for updates, or join our discord where we also announce upcoming releases.
comment created time in a month
push eventmozilla/Spoke
commit sha 85392aea3d516b37451ef3aaf339bf411fcc8ec7
Don't show media frame helper in scene preview
commit sha 96b48792b465a8e5eaa16ebd0be3e216b7cc3076
Merge pull request #1033 from mozilla/mediaframe-fix-previews Don't show media frame helper in scene preview
push time in a month
issue closedmozilla/Spoke
Media frames appear in scene previews
When you go to publish a scene, media frames in front of the preview camera will appear light gray.

closed time in a month
johnshaughnessyissue commenttgbyte/docker-borg-backup
persist generated ssh host key
I know this is an old post, but in case anyone comes looking... What you actually want to do is mount a volume for /etc/ssh/ as that is where the host keys are stored. The important contents of /home/borg/.ssh are already written out by the boot script.
comment created time in a month
issue commentmozilla/hubs
add tab completion to the chat / command box
Current "suggestions" interface in hubs. Not selectable, no tab completion:

Some examples of what this looks like in other chat clients:
Slack:

Discord:

comment created time in a month
issue closedmozilla/hubs
Audio-only HLS streams stutter / are not supported
Description Audio-only HLS streams added as URLs (.m3u8) play, but stutter every few seconds. Javascript console reveals that it is throwing an error when it cannot find the video
To Reproduce Steps to reproduce the behavior:
- Start audio-only HLS stream
- Load HLS URL with magic wand
- Audio plays, stutters, JS warnings thrown
Expected behavior HLS audio-only streams should play normally
Screenshots If applicable, add screenshots to help explain your problem.
Hardware <!-- Please complete the following information -->
- Device: Desktop
- OS: OSX
- Browser Chrome
Additional context Add any other context about the problem here.
closed time in a month
roddylindsayissue commentmozilla/hubs
Audio-only HLS streams stutter / are not supported
Going through cleaning up some old issues. I think this should have been resolved with the last round of HLS fixes.
comment created time in a month
push eventmozilla/Spoke
commit sha 86c3e9522685876f2b1a24ac56860401e36022db
Support for media frames
commit sha 4c1ff472639270d462fcf2dc3a7b13befe25b5ad
Export network id in case we need it later
commit sha 5133a96173e6fc4d4143eb6c3e652b0aba4290aa
mediaTypes -> mediaType
commit sha d2229dc824522dbfa8b5a2367d904ee4478707d2
Add media frame to test scene snapshot
commit sha 8bbdf886b3d8d5cfb5c3d19dd19439a0e95f4e76
Merge pull request #1019 from mozilla/media-frames Media Frames
push time in a month
PR merged mozilla/Spoke
Adds support for the "Media Frame" element, which is used to capture media and position it precisely in space. Requires the associated Hubs PR to go out first https://github.com/mozilla/hubs/pull/2967. Though the initial Hubs PR does not handle networking, we write out a network id for this component in anticipation we will be needing it in the future.
As with the Hubs side, the visuals for the helpers could use some love, so we will need to update them once we land on something better for Hubs.
pr closed time in a month
push eventmozilla/hubs
commit sha 998bd98dcfaefa659ed54c9f73568ff90288efdc
WIP media target zones
commit sha cc8c1bc802bb88ac35d63354b22a00d110cc243e
Finish basic implementation of media frames
commit sha 18d70f71e3e60a46ed6c8f43ad9bab60e8dc69ec
Ranema MediaTargetZoneSystem to MediaFramesSystem
commit sha 13314bc8f4e65a9f79bbb0ce667a149310351098
Major rework to support networking
commit sha f91aabc0f77cc27655fd6437f0887b12e83a4e41
Revert accidental change to media gltf component
commit sha 0238f170479793d1112a35e856065722783e2fd8
Update three-ammo to fix collision detection bug
commit sha 3ce1d47b1929180b7ac6199bfa1e38e56ad09a81
Handle zone ownership race case
commit sha 49d6f2c4f19a81cb33b01abe67731b955bc5f366
Tidy up a bit, remove unused code/logs
commit sha b73f42e6f001db0725c4cd7f9c98a555de45030d
zone -> frame
commit sha da74f4f94ae315032c2f04504694f95d65856cbe
Delint
commit sha 1dfaf69d760349f7ed7d75733aa51b087b071e88
Fix indenting in hub.html
commit sha 81a0c32f6bb3677fd8400b9c8460053d30fffba9
More pre-push cleanup
commit sha 43d9aeca7ead1857c804a62c12da3c85adb08201
Update NAF version
commit sha 6a965439772f5d874e89c5efd57e011c7c73719c
Add note about world space assumptions
commit sha 86da0602446480c360aec18c785636b1be2c2ce6
Merge pull request #2967 from mozilla/media-target-zones Media Frames
push time in a month
PR merged mozilla/hubs
Adds support for "Media Frames" that you can snap different types of media into to position them precisely in space. Items will be scaled to fill the media frame, while preserving their original aspect ratio. When an item is removed from a frame it will return to its original scale. Media frames can be created from the Elements panel in Spoke.

The visuals are also very crude and could use some design love, but again, doesn't feel worth holding back this useful feature for.
Associated Spoke PR: https://github.com/mozilla/Spoke/pull/1019
TODO:
- [x] merge https://github.com/MozillaReality/networked-aframe/pull/42
- [x] update package-lock.json to point at updated networked-aframe
Known Issues:
- Pinned objects will not be re-captured into a frame if everyone leaves the room. They will remain in their position and scale as they naturally would, but the media frame will be considered empty. This is unfortunately kind of tricky to handle and will need some fixes to our networking code. (The pinned object is unowned if nobody interacts with it, and media frame snapping is handled by each client for objects it owns)
- When grabbing an object that you don't own that is snapped into a media frame, it will immediately un-snap from the frame rather than waiting to be dragged out of the frame. This is likely something to do with changing collision flags while objects are already intersecting. The same thing also seems to happen for objects that were tossed into a media zone instead of placed... this one is more puzzling.
pr closed time in a month
push eventmozilla/Spoke
commit sha d2229dc824522dbfa8b5a2367d904ee4478707d2
Add media frame to test scene snapshot
push time in a month
push eventmozilla/hubs
commit sha 6a965439772f5d874e89c5efd57e011c7c73719c
Add note about world space assumptions
push time in a month
push eventmozilla/hubs
commit sha 43d9aeca7ead1857c804a62c12da3c85adb08201
Update NAF version
push time in a month
push eventMozillaReality/networked-aframe
commit sha 4aebc48af60be2e926fc97a5fa6cdc1be098fc12
Fix taking ownership of scene owned objs on leave
commit sha 336e2331548c0f92e084d777b3d024cc0a5ec88e
cleanup from PR feedback
commit sha 09dc7cf448bb7c38f14f419f24882764ccf8c179
Attempt to fix travisci build
commit sha c8cea8fbb3509fbffad749b72f374044e4dedb48
Update dist (we don't use these but might as well)
commit sha 19a5a972d5a88423b3e17a12864627d49a6a77d5
Merge pull request #42 from MozillaReality/fix-scene-object-ownership Fix taking ownership of scene owned objects on leave
push time in a month
PR merged MozillaReality/networked-aframe
"persistent" objects are supposed to have their ownership transferred when the creator of the object leaves the room, rather than being removed.
"scene owned" objects do not have a "creator", so the logic for taking ownership over them when people leave does not trigger. This was noticed when testing media frames but is likely the source of several other bugs in Hubs like scene owned videos restarting randomly when people join the room. (Happens because the person who owned the video left, leaving no owner).
The existing code could also lead to persistent objects being removed if anyone failed the takeOwnership call, which could happen if the object recently changed ownership before the "creator" left. This could explain some of the pinned objects disappearing we have seen.
The handling for scene owned objects still feels pretty peace-meal and special logic still exists for videos in Hubs to take ownership on scene load. This should get moved into NAF such that scene owned objects are only a transitory state and once running all objects should always maintain an owner. Will leave that for another PR though.
fixes https://github.com/mozilla/hubs/issues/2370
pr closed time in a month
issue closedmozilla/hubs
Pinned videos reset play position if user who last interacted with video re-enters room
If the last person who interacted with a pinned video re-enters a room, the video progress will reset back to the start for everyone. This only happens with pinned videos, but it doesn't matter if it's the owner or someone else who last interacted with it.
Steps to reproduce the behavior:
- Enter room with two tabs.
- Spawn a video on one tab, and pin it.
- Interact with the video (e.g. advance ahead 30 seconds) on one of the tabs.
- Whichever tab was used in step 3, refresh it.
- Observe that in the other tab, the video state resets back to the beginning.
closed time in a month
InfiniteLeepush eventmozilla/hubs
commit sha 81a0c32f6bb3677fd8400b9c8460053d30fffba9
More pre-push cleanup
push time in a month
Pull request review commentmozilla/hubs
+import { MediaType } from "../utils/media-utils";+import { TEXTURES_FLIP_Y } from "../loaders/HubsTextureLoader";+import { applyPersistentSync } from "../utils/permissions-utils";++// TODO better handling for 3d objects+function scaleForAspectFit(containerSize, itemSize) {+ return Math.min(containerSize.x / itemSize.x, containerSize.y / itemSize.y);+}++const isCapturableByType = {+ [MediaType.ALL]: function(el) {+ return !!(el && el.components["media-loader"]);+ },+ [MediaType.ALL_2D]: function(el) {+ return !!(el && (el.components["media-image"] || el.components["media-video"] || el.components["media-pdf"]));+ },+ [MediaType.MODEL]: function(el) {+ return !!(el && el.components["gltf-model-plus"]);+ },+ [MediaType.IMAGE]: function(el) {+ return !!(el && el.components["media-image"]);+ },+ [MediaType.VIDEO]: function(el) {+ return !!(el && el.components["media-video"]);+ },+ [MediaType.PDF]: function(el) {+ return !!(el && el.components["media-pdf"]);+ }+};++const EMPTY_COLOR = 0x6fc0fd;+const HOVER_COLOR = 0x2f80ed;+const FULL_COLOR = 0x808080;++const components = [];+export class MediaFramesSystem {+ constructor(physicsSystem, interactionSystem) {+ this.physicsSystem = physicsSystem;+ this.interactionSystem = interactionSystem;+ }++ tick() {+ for (let i = 0; i < components.length; i++) {+ const frame = components[i];++ const bodyUUID = frame.el.components["body-helper"].uuid;+ // TODO would be nice to fix the timing so we don't need to check this+ if (!this.physicsSystem.bodyInitialized(bodyUUID)) continue;++ const holdingSomethingCapturable = this.interactionSystem.isHoldingAnything(+ isCapturableByType[frame.data.mediaType]+ );++ const guideMesh = frame.el.getObject3D("guide");+ guideMesh.visible = holdingSomethingCapturable;++ if (frame.data.targetId === "empty") {
I would like to clean up the branching logic here a bit, but would like to do it as a followup PR since its tricky to get right and I don't want to restart the testing process now.
comment created time in a month
push eventmozilla/hubs
commit sha 1dfaf69d760349f7ed7d75733aa51b087b071e88
Fix indenting in hub.html
push time in a month
push eventMozillaReality/networked-aframe
commit sha c8cea8fbb3509fbffad749b72f374044e4dedb48
Update dist (we don't use these but might as well)
push time in a month
Pull request review commentMozillaReality/networked-aframe
Fix taking ownership of scene owned objects on leave
class NetworkEntities { var entityList = []; for (var id in this.entities) { var entityCreator = NAF.utils.getCreator(this.entities[id]);- if (entityCreator === clientId) {- let persists;- const component = this.entities[id].getAttribute('networked');- if (component && component.persistent) {- persists = NAF.utils.isMine(this.entities[id]) || NAF.utils.takeOwnership(this.entities[id]);- }- if (!persists) {- var entity = this.removeEntity(id);- entityList.push(entity);+ var entityOwner = NAF.utils.getNetworkOwner(this.entities[id]);+ if (entityCreator === clientId || (!entityCreator && entityOwner === clientId)) {+ if (this.entities[id].getAttribute("networked").persistent) {
Don't think its needed, but did not intend to make that change here.. Will leave in for now even though it seems overly defensive.
comment created time in a month
push eventMozillaReality/networked-aframe
commit sha 09dc7cf448bb7c38f14f419f24882764ccf8c179
Attempt to fix travisci build
push time in a month
push eventMozillaReality/networked-aframe
commit sha 336e2331548c0f92e084d777b3d024cc0a5ec88e
cleanup from PR feedback
push time in a month
push eventmozilla/hubs
commit sha da74f4f94ae315032c2f04504694f95d65856cbe
Delint
push time in a month
push eventmozilla/hubs
commit sha b2b86d53b108d4343a59b998a4d0d6fb28ee203d
Delint
push time in a month
push eventmozilla/hubs
commit sha b73f42e6f001db0725c4cd7f9c98a555de45030d
zone -> frame
push time in a month
push eventmozilla/hubs
commit sha 3ce1d47b1929180b7ac6199bfa1e38e56ad09a81
Handle zone ownership race case
commit sha 49d6f2c4f19a81cb33b01abe67731b955bc5f366
Tidy up a bit, remove unused code/logs
push time in a month
PR opened MozillaReality/networked-aframe
"persistent" objects are supposed to have their ownership transferred when the creator of the object leaves the room, rather than being removed.
"scene owned" objects do not have a "creator", so the logic for taking ownership over them when people leave does not trigger. This was noticed when testing media frames but is likely the source of several other bugs in Hubs like scene owned videos restarting randomly when people join the room. (Happens because the person who owned the video left, leaving no owner).
The existing code could also lead to persistent objects being removed if anyone failed the takeOwnership call, which could happen if the object recently changed ownership before the "creator" left. This could explain some of the pinned objects disappearing we have seen.
The handling for scene owned objects still feels pretty peace-meal and special logic still exists for videos in Hubs to take ownership on scene load. This should get moved into NAF such that scene owned objects are only a transitory state and once running all objects should always maintain an owner. Will leave that for another PR though.
pr created time in a month
create barnchMozillaReality/networked-aframe
branch : fix-scene-object-ownership
created branch time in a month
push eventmozilla/hubs
commit sha f91aabc0f77cc27655fd6437f0887b12e83a4e41
Revert accidental change to media gltf component
commit sha 0238f170479793d1112a35e856065722783e2fd8
Update three-ammo to fix collision detection bug
push time in a month
push eventInfiniteLee/three-ammo
commit sha dc1b98a7d1c0656f12fe67b43391494d19462ef2
1.0.12 release
push time in a month
push eventInfiniteLee/three-ammo
commit sha 3fcd10f85ed60b3ae07aae016bbe525967a098fc
Always report collision pairs in both directions
commit sha fc47597aa882b723d45e5446b32778b11f5b856b
Remove redundant indexOf in removeBody
commit sha 5cd08c157a43491cc1ef5f6a84cab8f70d4cf3ec
Restore distance check
commit sha 78cda3c84b0963eedb981fee2ead9fb2ea3e3b4b
Merge pull request #10 from InfiniteLee/bi-directional-collisions Report collisions to both sets of objects involved
push time in a month
PR merged InfiniteLee/three-ammo
Previously we were only reporting collisions for the first object in a collision pair. This results in world insertion order effecting which objects are told about collisions (was quite hard to trace this down). Both objects should report the collision, regardless of which happened to be the first in the collision pair.
Also, since we are not actually concerned with the nature of collision and just care if one occurred at all, it seems sufficient to check only for the existence of collision points rather than iterating them and checking distance. We can't simply check for manifolds existing, as they exist when objects are just "colliding" the broad phase.. Still unclear if this is true so restoring the checking of points.
In looking into this there seem to be some more optimized ways (btGhostObject) we might handle "trigger" type objects which we only want collision information on but no collision response, but would be more work to implement and more research to know if its even worth it.
pr closed time in a month
push eventInfiniteLee/three-ammo
commit sha 5cd08c157a43491cc1ef5f6a84cab8f70d4cf3ec
Restore distance check
push time in a month
PR opened InfiniteLee/three-ammo
Previously we were only reporting collisions for the first object in a collision pair. This results in world insertion order effecting which objects are told about collisions (was quite hard to trace this down). Both objects should report the collision, regardless of which happened to be the first in the collision pair.
Also, since we are not actually concerned with the nature of collision and just care if one occurred at all, it seems sufficient to check only for the existence of collision points rather than iterating them and checking distance. We can't simply check for manifolds existing, as they exist when objects are just "colliding" the broad phase.
In looking into this there seem to be some more optimized ways (btGhostObject) we might handle "trigger" type objects which we only want collision information on but no collision response, but would be more work to implement and more research to know if its even worth it.
pr created time in a month
create barnchInfiniteLee/three-ammo
branch : bi-directional-collisions
created branch time in a month
issue openedbeemdevelopment/Aegis
Authy import failing to import some tokens `No value for secretSeed`
<!-- Please read the bug reports section of the contribution guidelines before submitting an issue. -->
Info
- Version: 1.3
- Source: google play
- Vault encrypted: Yes (with biometric unlock)
- Device: pixel 4 XL
- Android version and ROM: Stock Android 11
Steps to reproduce
Tap "import from app", select "authy", grant root permission. Get "Aegis could not import 12 tokens". Clicking details shows repeated org.json.JSONException: No value for secretSeed errors.
All of the proprietary Authy tokens and several standard TOTP tokens imported successfully but the rest of the standard TOTP tokens did not. I do not see a pattern to the tokens that are failing. I tried importing with backups in authy both enabled and disabled as well as pin enabled and disabled.
created time in a month
push eventmozilla/hubs
commit sha 13314bc8f4e65a9f79bbb0ce667a149310351098
Major rework to support networking
push time in 2 months
Pull request review commentmozilla/hubs
+import { isTagged, setTag } from "../components/tags";+import { MediaType } from "../utils/media-utils";+import { TEXTURES_FLIP_Y } from "../loaders/HubsTextureLoader";++const TARGET_ZONE_STATE = {+ EMPTY: "empty",+ HOVERING: "hovering",+ FULL: "full"+};++function scaleForAspectFit(containerSize, itemSize) {+ return Math.min(containerSize.x / itemSize.x, containerSize.y / itemSize.y);+}++const isCapturableByType = {+ [MediaType.ALL]: function(el) {+ return !!(el && NAF.utils.isMine(el) && el.components["media-loader"]);+ },+ [MediaType.ALL_2D]: function(el) {+ return !!(+ el &&+ NAF.utils.isMine(el) &&+ (el.components["media-image"] || el.components["media-video"] || el.components["media-pdf"])+ );+ },+ [MediaType.MODEL]: function(el) {+ return !!(el && NAF.utils.isMine(el) && el.components["gltf-model-plus"]);+ },+ [MediaType.IMAGE]: function(el) {+ return !!(el && NAF.utils.isMine(el) && el.components["media-image"]);+ },+ [MediaType.VIDEO]: function(el) {+ return !!(el && NAF.utils.isMine(el) && el.components["media-video"]);+ },+ [MediaType.PDF]: function(el) {+ return !!(el && NAF.utils.isMine(el) && el.components["media-pdf"]);+ }+};++function getCapturableObjectCollidingWithBody(physicsSystem, mediaType, bodyUUID) {+ const collisions = physicsSystem.getCollisions(bodyUUID);+ for (let i = 0; i < collisions.length; i++) {+ const bodyData = physicsSystem.bodyUuidToData.get(collisions[i]);+ const mediaObjectEl = bodyData && bodyData.object3D && bodyData.object3D.el;+ if (isCapturableByType[mediaType](mediaObjectEl)) {+ return mediaObjectEl.object3D;+ }+ }+ return null;+}++const components = [];+export class MediaFramesSystem {+ constructor(physicsSystem, interactionSystem) {+ this.physicsSystem = physicsSystem;+ this.interactionSystem = interactionSystem;+ }++ tick() {+ for (let i = 0; i < components.length; i++) {+ const zone = components[i];++ const bodyUUID = zone.el.components["body-helper"].uuid;+ // TODO would be nice to fix the timing so we don't need to check this+ if (!this.physicsSystem.bodyInitialized(bodyUUID)) continue;++ const objectToCapture = getCapturableObjectCollidingWithBody(this.physicsSystem, zone.data.mediaType, bodyUUID);++ const previewMesh = zone.el.getObject3D("preview");+ const guideMesh = zone.el.getObject3D("guide");++ guideMesh.visible = this.interactionSystem.isHoldingAnything(isCapturableByType[zone.data.mediaType]);
They currently do show a different color when full, though like you said its not networked.
comment created time in 2 months
Pull request review commentmozilla/hubs
+import { isTagged, setTag } from "../components/tags";+import { MediaType } from "../utils/media-utils";+import { TEXTURES_FLIP_Y } from "../loaders/HubsTextureLoader";++const TARGET_ZONE_STATE = {+ EMPTY: "empty",+ HOVERING: "hovering",+ FULL: "full"+};++function scaleForAspectFit(containerSize, itemSize) {+ return Math.min(containerSize.x / itemSize.x, containerSize.y / itemSize.y);+}++const isCapturableByType = {
We currently don't have any non-networked objects that aren't static parts of the scene, but if we do eventually add some this is easy to change.
comment created time in 2 months
push eventmozilla/Spoke
commit sha 5133a96173e6fc4d4143eb6c3e652b0aba4290aa
mediaTypes -> mediaType
push time in 2 months
Pull request review commentmozilla/Spoke
+import {+ Object3D,+ BoxBufferGeometry,+ PlaneBufferGeometry,+ MeshBasicMaterial,+ ShaderMaterial,+ Mesh,+ Vector3,+ DoubleSide+} from "three";+import EditorNodeMixin from "./EditorNodeMixin";++export const MediaType = {+ ALL: "all",+ ALL_2D: "all-2d",+ MODEL: "model",+ IMAGE: "image",+ VIDEO: "video",+ PDF: "pdf"+};++export default class MediaFrameNode extends EditorNodeMixin(Object3D) {+ static legacyComponentName = "media-frame";++ static nodeName = "Media Frame";++ static _geometry = new BoxBufferGeometry();++ constructor(editor) {+ super(editor);++ this.mediaTypes = MediaType.ALL_2D;++ const box = new Mesh(+ MediaFrameNode._geometry,+ new ShaderMaterial({+ uniforms: {+ opacity: { value: 1 }+ },+ vertexShader: `+ varying vec2 vUv;+ void main()+ {+ gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );+ vUv = uv;+ }+ `,+ fragmentShader: `+ // adapted from https://www.shadertoy.com/view/Mlt3z8+ float bayerDither2x2( vec2 v ) {+ return mod( 3.0 * v.y + 2.0 * v.x, 4.0 );+ }+ float bayerDither4x4( vec2 v ) {+ vec2 P1 = mod( v, 2.0 );+ vec2 P2 = mod( floor( 0.5 * v ), 2.0 );+ return 4.0 * bayerDither2x2( P1 ) + bayerDither2x2( P2 );+ }++ varying vec2 vUv;+ uniform float opacity;+ void main() {+ float alpha = max(step(0.45, abs(vUv.x - 0.5)), step(0.45, abs(vUv.y - 0.5))) - 0.5;+ if( ( bayerDither4x4( floor( mod( gl_FragCoord.xy, 4.0 ) ) ) ) / 16.0 >= alpha * opacity ) discard;+ gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);+ }+ `,+ side: DoubleSide+ })+ );++ const previewMaterial = new MeshBasicMaterial();+ previewMaterial.side = DoubleSide;+ previewMaterial.transparent = true;+ previewMaterial.opacity = 0.5;++ const previewMesh = new Mesh(new PlaneBufferGeometry(1, 1, 1, 1), previewMaterial);+ box.add(previewMesh);++ box.layers.set(1);++ this.helper = box;+ this.add(box);++ this.onDeselect();+ }++ onSelect() {+ this.helper.material.uniforms.opacity.value = 1.0;+ }++ onDeselect() {+ this.helper.material.uniforms.opacity.value = 0.5;+ }++ copy(source, recursive = true) {+ if (recursive) {+ this.remove(this.helper);+ }++ this.mediaTypes = source.mediaTypes;++ super.copy(source, recursive);++ if (recursive) {
Cargo culted this from the rest of the nodes, but don't really get whats going on here.
comment created time in 2 months
push eventmozilla/Spoke
commit sha 4c1ff472639270d462fcf2dc3a7b13befe25b5ad
Export network id in case we need it later
push time in 2 months
PR opened mozilla/Spoke
Adds support for the "Media Frame" element, which is used to capture media and position it precisely in space. Requires the associated Hubs PR to go out first https://github.com/mozilla/hubs/pull/2967. Though the initial Hubs PR does not handle networking, we write out a network id for this component in anticipation we will be needing it in the future.
pr created time in 2 months
PR opened mozilla/hubs
Adds support for "Media Frames" which can capture different types of media and position them precisely in space. Once positioned, items will be scaled to fill the media frame, while preserving their original aspect ratio. When an item is removed from a frame it will return to its original scale.
Currently this does not have any regard for networking. We will need to test this with multiple people to see if that's something we can live with for an initial release or if we want to iterate on that further before releasing it (my take is its probably worth releasing without that, and then immediately following up with a networked version), though in either case we probably want to make sure the data exported by Spoke is complete enough to support the full feature set we eventually want since its gets baked out into files.
The visuals are also very crude and could use some design love, but again, doesn't feel worth holding back this useful feature for.
pr created time in 2 months
push eventmozilla/hubs
commit sha 6fe776358745ed89d2d54104354fba311396cde8
Medium quality mode WIP
commit sha fd9471eeef8f9ef4091d3719395302fd617da11a
Show refresh button in hover menu for all media
commit sha 00bacef96226b66e03e613b8cb53bcc3796fa2d6
Add another case for HLS content types
commit sha 1ded0a0ee9f0a75da778e0490c7d450d2cba6aab
Remove live seeking code an unused events
commit sha d98d123fb4b88905858b073ddd0e026c5f68b113
Get rid of HLS timeout in favor of manual refresh
commit sha e7859968f67d2851405f02753be32f723d97a758
Allow HLS debugging via query param
commit sha cf0df769e68cd566b5b5c14db3caf38881e562f8
Support for audio only HLS streams
commit sha cce62e8db81c63c30f5c0762ea35f05d58d6d6f8
Use async XHR for HLS requests
commit sha 5f1254bcde659c16642b9127320b9d7494f5381d
Update HLS.js
commit sha 01a5923c94a3589c9c0b54ac2896b6996eb603b8
Merge branch 'feature/update-shadows-on-scene-load' into feature/medium-quality-mode
commit sha 8f29159ca4c0af74034142261f344f7782dddb47
Add medium quality setting alongside low quality
commit sha a5d024874721f2788184c6e7272ce1f2ed7fa84d
Merge branch 'master' into feature/medium-quality-mode
commit sha bcd22d6ffc5d6549d00147b15dbbd85c8ce1234d
Add support for tangent space normal maps
commit sha 171cf838de94227cd5fa5a466700e36f7cf99c7e
Revert unnecessary changes
commit sha bd6adff6e8a38a916f73edeaa8899715078bc4ab
Fix signin dialog bug
commit sha 1153b1baf8de807296f8592f940c285ac20ea274
add missing occupant data
commit sha 4c9f884208aefe85f609685e41afdda6baabd160
Merge pull request #2794 from robin-k-wilson/fix-missing-data add missing occupant data
commit sha 40a355f69794bb3da2317714320385a535c1bcbe
update react-intl pkg; fix how locale is identified; update how translation is picked
commit sha 0e9068ba604704877b1a469479a15b4264100920
invite links
commit sha 40173b2e6a90ed7825bcfa0e6f038b384fbf07c7
Fixes #2833 adding support to specify a spawn point name on the url using a anchor (#)
push time in 2 months