Connect with us

FACEBOOK

WebXR: A Contributor’s Story with Soham Parekh

Published

on

The “Contributor’s Story” series is intended to provide a face and voice to our major open source contributors and community members, an overview of the projects they are working on, and the successes and challenges contributors face when developing.

In this blog post, we will be talking to Soham, a WebXR contributor working on creating immersive AR/VR examples using WebXR media layers through the Major League Hacking (MLH) Fellowship.

“I have discovered that the best way to get better at software development is to not only practice it but to use it to solve real world problems.”

Tell us a little bit about yourself and your current experience in the MLH Fellowship.

I am a software developer, currently in my final year, creating open source projects and writing about software development, competitive coding, machine learning, cybersecurity and information security awareness. I am also the founder of and lead maintainer at Devstation, a not-for-profit organisation with an aim to encourage startups and organisations to adopt open source tech.

I spent most of my day turning coffee to code primarily written in Golang, Rust, Python or JavaScript. My life goal is to make the web a better, safer place for humans. For this, I am actively involved in Natural Language Processing, particularly in the applications of social graphs and graph neural networks to problems in social computing like web ethics, identification of hate speech, etc. I also am of the opinion that the most disastrous invention of the human-kind is pineapple as a pizza topping.

The first time I got to know about the MLH Fellowship was through a previous fellow who worked with Jest as a part of his fellowship. A few months back, I had created a feature request for a Jest-plugin for Puppeteer for introducing a video recording for the tests. Knowing that I can contribute to the fellowship in exciting frameworks like Jest that solve real-world problems is something that really caught my attention.

Advertisement
free widgets for website

Where did you first learn about open source? How did you get started using/contributing?

I came into contact with open source through the speech-to-code engine called Dragonfly. Since then, I have been an active contributor to the Cloud Native Computing Foundation since the past few years. However, my first formal introduction to open-source was in a program similar to MLH Fellowship called Google Summer of Code. There I worked with Wikimedia Foundation as a part of the Release Engineering Team and absolutely fell in love with the open source community.

See also  Facebook Tests New 'Spotlight' Conversation Option to Facilitate More Focused In-App Chats

Describe the project you are currently working on.

For the fellowship, I am working with Zhixiang Teoh on creating immersive AR, VR examples on the web that incorporate the WebXR layers specification, particularly with the WebXR media layers. The WebXR media layers specification makes creating and interacting with the video layers in a virtual environment not only performant but also crisper, reducing the dependence on CPU and leveraging the GPU in a rather efficient fashion.

We have particularly focused our attention on achieving these implementations through an existing library like Three.js that makes interfacing with the browser’s WebGL and WebXR API relatively simple by abstracting it away through helper classes and functions. Our goals for the fellowship particularly were to create examples that indicate how multiple media layers with different 3D characteristics (equi-rectangular, quad or cylindrical) can be created and attach controller interactions with them such as fluid resizing, a toolbar for video play/pause and playback as well as moving the layers in the virtual 3D space.

How did you initially go about tackling the issue?

We were lucky to have some reference implementations that the previous fellows had worked on, but the existing code wasn’t really the best way to do it. The code examples were in the form of a single file that made traversing to the code rather convoluted.

Our first step was to migrate the existing code examples to be modular and use as many abstractions provided by Three.js as possible so that the future viewers of the code have an easier time following it. We also made the code well-commented and added support for “snowpack” to leverage support for ES Modules.

Advertisement
free widgets for website

What roadblocks or problems have you faced thus far in your contribution?

One of the major roadblocks we’ve had so far in our contribution is that the WebXR Layers are a relatively new feature recently added to the WebXR world. WebXR itself is particularly new in its field and while browser-support for immersive experiences on the Web has been on a steady rise, a lot of the things required a thorough understanding on our part on other areas of the WebXR API spec itself. This was rather challenging since the spec was intended to serve as a reference to the browser implementers. The process, however, was very exciting since it got as familiar with a lot of the things that work under the hood of a browser that make an immersive experience on the web achievable.

See also  GOP Rep. Ken Buck takes aim at Facebook over content moderation

What is the current status of development?

As the fellowship nears its close, we have achieved most of the deliverables with a well-commented code. Currently we are working to make the existing code more refined, filtering out potential bugs, adding documentation for caveats and work around that we have incorporated and making the code more performant in places where we can.

What have you learned about the project, development, or open source thus far?

The last time I worked with Three.js was two years ago with a primary aim to learn it while constructing my personal website. Since peeking into Three.js implementation of native WebGL and WebXR APIs became a recurring trend, working with WebXR as a part of the fellowship gave me a chance to explore Three.js a lot more in depth. I now feel confident to contribute to Three.js and the Immersive Web community and feel ready to dive deep into complicated codebases.

There is one key experience that I particularly value a lot as the fellowship comes to a close and that is getting to know and work with Teoh. I have a tendency to over engineer, and Teoh was always helpful in keeping me track without spending too much time on refining a feature and taking breaks when necessary. I’ve learnt that quick pair programming sessions are a great way to work on complicated tasks and a great way to get to know your fellow developers.

Overall, contributing to open source and knowing that our examples will serve as a reference for future implementations of the layer specification fills me with a sense of satisfaction.

Advertisement
free widgets for website

What advice would you give future contributors to the open source project?

WebXR looks quite more intimidating than it actually is. I think the best way to approach it is to first read the MDN Web Docs on the WebXR specification and then read the official WebXR API spec. The official WebXR specification is meant for browser tormentors. This makes it easy to get lost. The idea is to use this specification only to understand the corresponding documentation on MDN in more detail.

See also  Facebook to test reduced visibility of political content in Ireland, Spain and Sweden - EURACTIV.com

Three.js does a wonderful job of working with WebGL. Using the abstractions provided by Three.js has really helped us to work with WebGL and WebXR APIs with relative ease. 1

We discovered another such framework called A-frame halfway into the fellowship. A-frame makes working with immersive experiences on the web simpler and I highly recommend future contributors take a look at it.

We’d like to thank Soham for their continuous contributions to the Facebook Open Source ecosystem. You can follow Soham’s work through his Website, GitHub, and LinkedIn.

If you’d like to learn more about Facebook Open Source, follow us on Twitter, Facebook, and YouTube for relevant updates, and check out the WebXR website for how to get started. Also, we recently sponsored Open Web Docs, where we hope to do our part to continue the MDN tradition of providing quality web documentation on a variety of technologies, including XR.

Advertisement
free widgets for website

Facebook Developers

Continue Reading
Advertisement free widgets for website

FACEBOOK

Introducing an Update to the Data Protection Assessment

Published

on

By

introducing-an-update-to-the-data-protection-assessment

Over the coming year, some apps with access to certain types of user data on our platforms will be required to complete the annual Data Protection Assessment. We have made a number of improvements to this process since our launch last year, when we introduced our first iteration of the assessment.

The updated Data Protection Assessment will include a new developer experience that is enhanced through streamlined communications, direct support, and clear status updates. Today, we’re sharing what you can expect from these new updates and how you can best prepare for completing this important privacy requirement if your app is within scope.

If your app is in scope for the Data Protection Assessment, and you’re an app admin, you’ll receive an email and a message in your app’s Alert Inbox when it’s time to complete the annual assessment. You and your team of experts will then have 60 calendar days to complete the assessment. We’ve built a new platform that enhances the user experience of completing the Data Protection Assessment. These updates to the platform are based on learnings over the past year from our partnership with the developer community. When completing the assessment, you can expect:

  • Streamlined communication: All communications and required actions will be through the My Apps page. You’ll be notified of pending communications requiring your response via your Alerts Inbox, email, and notifications in the My Apps page.

    Note: Other programs may still communicate with you through the App Contact Email.

  • Available support: Ability to engage with Meta teams via the Support tool to seek clarification on the questions within the Data Protection Assessment prior to submission and help with any requests for more info, or to resolve violations.

    Note: To access this feature, you will need to add the app and app admins to your Business Manager. Please refer to those links for step-by-step guides.

  • Clear status updates: Easy to understand status and timeline indicators throughout the process in the App Dashboard, App Settings, and My Apps page.
  • Straightforward reviewer follow-ups: Streamlined experience for any follow-ups from our reviewers, all via developers.facebook.com.

We’ve included a brief video that provides a walkthrough of the experience you’ll have with the Data Protection Assessment:

Something Went Wrong

Advertisement
free widgets for website

We’re having trouble playing this video.

The Data Protection Assessment elevates the importance of data security and helps gain the trust of the billions of people who use our products and services around the world. That’s why we are committed to providing a seamless experience for our partners as you complete this important privacy requirement.

Here is what you can do now to prepare for the assessment:

  1. Make sure you are reachable: Update your developer or business account contact email and notification settings.
  2. Review the questions in the Data Protection Assessment and engage with your teams on how best to answer these questions. You may have to enlist the help of your legal and information security points of contact to answer some parts of the assessment.
  3. Review Meta Platform Terms and our Developer Policies.

We know that when people choose to share their data, we’re able to work with the developer community to safely deliver rich and relevant experiences that create value for people and businesses. It’s a privilege we share when people grant us access to their data, and it’s imperative that we protect that data in order to maintain and build upon their trust. This is why the Data Protection Assessment focuses on data use, data sharing and data security.

Data privacy is challenging and complex, and we’re dedicated to continuously improving the processes to safeguard user privacy on our platform. Thank you for partnering with us as we continue to build a safer, more sustainable platform.

First seen at developers.facebook.com

Advertisement
free widgets for website
See also  GOP Rep. Ken Buck takes aim at Facebook over content moderation
Continue Reading

FACEBOOK

Resources for Completing App Store Data Practice Questionnaires for Apps That Include the Facebook or Audience Network SDK

Published

on

By

resources-for-completing-app-store-data-practice-questionnaires-for-apps-that-include-the-facebook-or-audience-network-sdk

Resources for Completing App Store Data Practice Questionnaires for Apps That Include the Facebook or Audience Network SDK

First seen at developers.facebook.com

See also  Chef Scott's Last Taste of Summer via Facebook Live
Continue Reading

FACEBOOK

Resources for Completing App Store Data Practice Questionnaires for Apps That Include the Facebook or Audience Network SDK

Published

on

By

resources-for-completing-app-store-data-practice-questionnaires-for-apps-that-include-the-facebook-or-audience-network-sdk

Updated July 18: Developers and advertising partners may be required to share information on their app’s privacy practices in third party app stores, such as Google Play and the Apple App Store, including the functionality of SDKs provided by Meta. To help make it easier for you to complete these requirements, we have consolidated information that explains our data collection practices for the Facebook and Audience Network SDKs.

Facebook SDK

To provide functionality within the Facebook SDK, we may receive and process certain contact, location, identifier, and device information associated with Facebook users and their use of your application. The information we receive depends on what SDK features 3rd party applications use and we have structured the document below according to these features.

App Ads, Facebook Analytics, & App Events

Facebook App Events allow you to measure the performance of your app using Facebook Analytics, measure conversions associated with Facebook ads, and build audiences to acquire new users as well as re-engage existing users. There are a number of different ways your app can use app events to keep track of when people take specific actions such as installing your app or completing a purchase.

With Facebook SDK, there are app events that are automatically logged (app installs, app launches, and in-app purchases) and collected for Facebook Analytics unless you disable automatic event logging. Developers determine what events to send to Facebook from a list of standard events, or via a custom event.

When developers send Facebook custom events, these events could include data types outside of standard events. Developers control sending these events to Facebook either directly via application code or in Events Manager for codeless app events. Developers can review their code and Events Manager to determine which data types they are sending to Facebook. It’s the developer’s responsibility to ensure this is reflected in their application’s privacy policy.

Advertisement
free widgets for website

Advanced Matching

Developers may also send us additional user contact information in code, or via the Events Manager. Advanced matching functionality may use the following data, if sent:

  • email address, name, phone number, physical address (city, state or province, zip or postal code and country), gender, and date of birth.
See also  Chef Scott's Last Taste of Summer via Facebook Live

Facebook Login

There are two scenarios for applications that use Facebook Login via the Facebook SDK: Authenticated Sign Up or Sign In, and User Data Access via Permissions. For authentication, a unique, app-specific identifier tied to a user’s Facebook Account enables the user to sign in to your app. For Data Access, a user must explicitly grant your app permission to access data.

Note: Since Facebook Login is part of the Facebook SDK, we may collect other information referenced here when you use Facebook Login, depending on your settings.

Device Information

We may also receive and process the following information if your app is integrated with the Facebook SDK:

  • Device identifiers;
  • Device attributes, such as device model and screen dimensions, CPU core, storage size, SDK version, OS and app versions, and app package name; and
  • Networking information, such as the name of the mobile operator or ISP, language, time zone, and IP address.

Audience Network SDK

We may receive and process the following information when you use the Audience Network SDK to integrate Audience Network ads in your app:

  • Device identifiers;
  • Device attributes, such as device model and screen dimensions, operating system, mediation platform and SDK versions; and
  • Ad performance information, such as impressions, clicks, placement, and viewability.

First seen at developers.facebook.com

Continue Reading

Trending