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  Bishnoi aide issues threat to SSP on Facebook

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  Making it Easy to Scale More Personalized Ad Experiences

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  Extending the Trump Ban Won't Heal Facebook's Deeper Sickness

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

Enabling developers to create innovative AIs on Messenger and WhatsApp

Published

on

By

enabling-developers-to-create-innovative-ais-on-messenger-and-whatsapp

Every week over 1 billion people connect with businesses on our messaging apps. Many of these conversations are made possible by the thousands of developers who build innovative and engaging experiences on Messenger, Instagram and WhatsApp.

Since opening access to our Llama family of large language models, we’ve seen lots of momentum and innovation with more than 30 million downloads to date. As our messaging services continue to evolve, we believe the technology from Llama and other generative AI models have the potential to enhance business messaging through more natural, conversational experiences.

At Connect Meta announced that developers will be able to build third-party AIs – a term we use to refer to our generative AI-powered assistants – for our messaging services.

We’re making it easy for any developer to get started, so we’re simplifying the developer onboarding process and providing access to APIs for AIs that make it possible to build new conversational experiences within our messaging apps.

All developers will be able to access the new onboarding experience and features on Messenger in the coming weeks. For WhatsApp, we’ll be opening a Beta program in November – if you’re interested in participating please sign up to the waitlist here to learn more.

Advertisement
free widgets for website

We’ll keep everyone updated as we make these tools available to more developers later this year. We look forward to your feedback and seeing what you create.

First seen at developers.facebook.com

See also  Extending the Trump Ban Won't Heal Facebook's Deeper Sickness
Continue Reading

FACEBOOK

Introducing Facebook Graph API v18.0 and Marketing API v18.0

Published

on

By

introducing-facebook-graph-api-v180-and-marketing-api-v18.0

Today, we are releasing Facebook Graph API v18.0 and Marketing API v18.0. As part of this release, we are highlighting changes below that we believe are relevant to parts of our developer community. These changes include announcements, product updates, and notifications on deprecations that we believe are relevant to your application(s)’ integration with our platform.

For a complete list of all changes and their details, please visit our changelog.

General Updates

Consolidation of Audience Location Status Options for Location Targeting

As previously announced in May 2023, we have consolidated Audience Location Status to our current default option of “People living in or recently in this location” when choosing the type of audience to reach within their Location Targeting selections. This update reflects a consolidation of other previously available options and removal of our “People traveling in this location” option.

We are making this change as part of our ongoing efforts to deliver more value to businesses, simplify our ads system, and streamline our targeting options in order to increase performance efficiency and remove options that have low usage.

This update will apply to new or duplicated campaigns. Existing campaigns created prior to launch will not be entered in this new experience unless they are in draft mode or duplicated.

Advertisement
free widgets for website

Add “add_security_recommendation” and “code_expiration_minutes” to WA Message Templates API

Earlier this year, we released WhatsApp’s authentication solution which enabled creating and sending authentication templates with native buttons and preset authentication messages. With the release of Graph API v18, we’re making improvements to the retrieval of authentication templates, making the end-to-end authentication template process easier for BSPs and businesses.

With Graph API v18, BSPs and businesses can have better visibility into preset authentication message template content after creation. Specifically, payloads will return preset content configuration options, in addition to the text used by WhatsApp. This improvement can enable BSPs and businesses to build “edit” UIs for authentication templates that can be constructed on top of the API.

See also  Frances Haugen testimony: Live updates - The Washington Post

Note that errors may occur when upgrading to Graph API v18 if BSPs or businesses are taking the entire response from the GET request and providing it back to the POST request to update templates. To resolve, the body/header/footer text fields should be dropped before passing back into the API.

Re-launching dev docs and changelogs for creating Call Ads

  • Facebook Reels Placement for Call Ads

    Meta is releasing the ability to deliver Call Ads through the Facebook Reels platform. Call ads allow users to call businesses in the moment of consideration when they view an ad, and help businesses drive more complex discussions with interested users. This is an opportunity for businesses to advertise with call ads based on peoples’ real-time behavior on Facebook. Under the Ad set Level within Ads Manager, businesses can choose to add “Facebook Reels” Under the Placements section.
  • Re-Launching Call Ads via API

    On September 12, 2023, we’re providing updated guidance on how to create Call Ads via the API. We are introducing documentation solely for Call Ads, so that 3P developers can more easily create Call Ads’ campaigns and know how to view insights about their ongoing call ad campaigns, including call-related metrics. In the future, we also plan to support Call Add-ons via our API platform. Developers should have access to the general permissions necessary to create general ads in order to create Call Ads via the API platform.

    Please refer to developer documentation for additional information.

Deprecations & Breaking Changes

Graph API changes for user granular permission feature

We are updating two graph API endpoints for WhatsAppBusinessAccount. These endpoints are as follows:

  • Retrieve message templates associated with WhatsAppBusiness Account
  • Retrieve phone numbers associated with WhatsAppBusiness Account

With v18, we are rolling out a new feature “user granular permission”. All existing users who are already added to WhatsAppBusinessAccount will be backfilled and will continue to have access (no impact).

The admin has the flexibility to change these permissions. If the admin changes the permission and removes access to view message templates or phone numbers for one of their users, that specific user will start getting an error message saying you do not have permission to view message templates or phone numbers on all versions v18 and older.

Advertisement
free widgets for website

Deprecate legacy metrics naming for IG Media and User Insights

Starting on September 12, Instagram will remove duplicative and legacy, insights metrics from the Instagram Graph API in order to share a single source of metrics to our developers.

This new upgrade reduces any confusion as well as increases the reliability and quality of our reporting.

After 90 days of this launch (i.e. December 11, 2023), we will remove all these duplicative and legacy insights metrics from the Instagram Graph API on all versions in order to be more consistent with the Instagram app.

We appreciate all the feedback that we’ve received from our developer community, and look forward to continuing to work together.

Please review the media insights and user insights developer documentation to learn more.

Advertisement
free widgets for website

Deprecate all Facebook Wi-Fi v1 and Facebook Wi-Fi v2 endpoints

Facebook Wi-Fi was designed to improve the experience of connecting to Wi-Fi hotspots at businesses. It allowed a merchant’s customers to get free Wi-Fi simply by checking in on Facebook. It also allowed merchants to control who could use their Wi-Fi and for how long, and integrated with ads to enable targeting to customers who had used the merchant’s Wi-Fi. This product was deprecated on June 12, 2023. As the partner notice period has ended, all endpoints used by Facebook Wi-Fi v1 and Facebook Wi-Fi v2 have been deprecated and removed.

API Version Deprecations:

As part of Facebook’s versioning schedule for Graph API and Marketing API, please note the upcoming deprecations:

Graph API

  • September 14, 2023: Graph API v11.0 will be deprecated and removed from the platform
  • February 8, 2024: Graph API v12.0 will be deprecated and removed from the platform
  • May 28, 2024: Graph API v13.0 will be deprecated and removed from the platform

Marketing API

  • September 20, 2023: Marketing API v14.0 will be deprecated and removed from the platform
  • September 20, 2023: Marketing API v15.0 will be deprecated and removed from the platform
  • February 06, 2024: Marketing API v16.0 will be deprecated and removed from the platform

To avoid disruption to your business, we recommend migrating all calls to the latest API version that launched today.

Facebook Platform SDK

As part of our 2-year deprecation schedule for Platform SDKs, please note the upcoming deprecations and sunsets:

  • October 2023: Facebook Platform SDK v11.0 or below will be sunset
  • February 2024: Facebook Platform SDK v12.0 or below will be sunset

First seen at developers.facebook.com

See also  Businesses, Facebook group come together to help Brenstville teen with cancer
Continue Reading

FACEBOOK

Allowing Users to Promote Stories as Ads (via Marketing API)

Published

on

By

allowing-users-to-promote-stories-as-ads-(via-marketing-api)

Before today (August 28, 2023), advertisers could not promote images and/or videos used in Instagram Stories as ads via the Instagram Marketing API. This process created unwanted friction for our partners and their customers.

After consistently hearing about this pain point from our developer community, we have removed this unwanted friction for advertisers and now allow users to seamlessly promote their image and/or video media used in Instagram Stories as ads via the Instagram Marketing API as of August 28, 2023.

We appreciate all the feedback received from our developer community, and hope to continue improving your experience.

Please review the developer documentation to learn more.

First seen at developers.facebook.com

Advertisement
free widgets for website
See also  Making it Easy to Scale More Personalized Ad Experiences
Continue Reading

Trending