Logo
    Search

    740: Local AI Models in JavaScript - Machine Learning Deep Dive With Xenova

    enMarch 08, 2024

    Podcast Summary

    • Run AI models locally in JavaScript with Transformers.jsTransformers.js, developed by Zenova, enables running AI models locally in JavaScript using Hugging Face's platform and library, expanding accessibility to machine learning for developers in various environments.

      Zenova, the developer behind Transformers.js from Hugging Face, has created a way to run AI models, locally, in JavaScript using the Transformers.js library. Hugging Face is a collaborative platform for machine learning where people can share models, data sets, and applications. Transformers.js is a JavaScript version of the popular Python library, Transformers, which allows users to run machine learning models locally in various JavaScript environments, including the browser and Node.js. With Transformers.js, developers can easily create their own applications or build upon the library, making it accessible to a wider audience. The library has gained significant community support and has seen numerous updates and demos since its inception. It's quite remarkable that developers can now run AI models locally using just a few lines of code in JavaScript, making machine learning more accessible to a broader range of developers.

    • A JavaScript developer creates transformers.js to run ML models locallyA determined JavaScript developer built transformers.js, enabling ML models to run locally in a browser extension without external API data transfer, using ONNX Runtime or Onyx runtime web instead of PyTorch.

      The speaker, a JavaScript developer with no data science background, was able to create the transformers.js library to run machine learning models in JavaScript after struggling with the complexity and requirements of using Python and libraries like TensorFlow and PyTorch. The speaker was motivated by a desire to run models locally in a browser extension without sending user data to external APIs. The transformers.js library, which initially supported BERT, T5, and GPT-2, gained significant attention and popularity after being shared on social media, leading to its ongoing development. The key difference between the Python library and transformers.js is that the latter uses ONNX Runtime or Onyx runtime web instead of PyTorch to run models. This allowed the speaker to duplicate and adapt the Python library for JavaScript use. The journey to create transformers.js was a result of the speaker's determination to overcome the challenges and complexities they faced in the machine learning world as a JavaScript developer.

    • Using Hugging Face's Transformers library and ONNX Runtime Web for JavaScriptEasily use complex machine learning models in JavaScript by converting Hugging Face's Transformers models to ONNX format and using ONNX Runtime Web for inference.

      Hugging Face's Transformers library for JavaScript simplifies the interaction with the library by handling preprocessing, post-processing, and other tasks, while ONNX Runtime Web handles the model inference. ONNX (Open Neural Network Exchange) is a standard for saving models and defining their graphs and weights in a single file, making it easy to run models across different platforms. Microsoft's ONNX runtime is a library for running ONNX models, and Hugging Face's Optimum library makes it easy to convert Transformers models from Python to ONNX format. The process involves defining the model type and inputs/outputs, and then running the Onnx conversion process, which is built into PyTorch. Some additional optimizations, such as splitting encoder and decoder models to prevent weight duplication, were also required. Overall, the combination of Transformers, Optimum, and ONNX runtime makes it easy to use complex machine learning models in various applications.

    • Explore Transformers JS library for local model runningTransformers JS library offers models and tasks for vision, text, audio, and multimodality, enabling local running for demos like object detection and depth estimation, showcasing the power of progressive web apps and desktop applications.

      Transformers JS, a library by Hugging Face, offers various models and tasks, including vision, text, audio, and multimodality, enabling web developers to run models locally, experiment, and build applications. The vision category, in particular, has gained popularity with demos like object detection and depth estimation, which can be run locally after downloading the models, creating a seamless user experience even without an internet connection. These demos showcase the power of progressive web apps and desktop applications, and the small model sizes, such as Depth Anything (45 megabytes), make local running feasible. This opens up opportunities for developers to explore, innovate, and create engaging experiences for users.

    • Real-time machine learning in the browser with WebAssembly and WebGPUReal-time machine learning applications are becoming faster and more accessible through in-browser technologies like WebAssembly and WebGPU, enabling responsive and efficient applications without external APIs or network requests.

      Real-time machine learning applications are becoming increasingly powerful and accessible through in-browser technologies like WebAssembly and the upcoming WebGPU API. The example given, Doodle Dash, demonstrates this capability by using a neural network to predict drawings in real time at 60 predictions per second, all locally in the browser without the need for external APIs or network requests. This showcases the potential for on-device machine learning to deliver responsive and efficient applications. Another interesting application discussed was face segmentation, which breaks down images into foreground, background, and specific facial features. Although it can run on the CPU in the browser, the next step is to utilize the WebGPU API to accelerate the process and achieve faster results. Microsoft's ONNX Runtime Web team has recently enabled WebGPU as an execution provider, and integrating it with transformers JS is currently under development. Testing has shown significant improvements in performance for models like Segment Anything, reducing image embedding computation time from 40 seconds to just a few seconds, and even smaller models like the latest Slim Sam variant can achieve results in just a couple seconds. These advancements highlight the potential for more efficient and responsive machine learning applications on the web.

    • Run machine learning models locally with transformers.js for improved speed and costTransformers.js in Node.js offers faster processing and lower costs by eliminating intermediaries, reducing encoding/decoding times, and enabling optimizations like using efficient libraries for image manipulation.

      Using transformers.js in Node.js for running machine learning models locally offers significant improvements in speed and cost compared to using APIs like OpenAI. The encoding and decoding times are expected to be drastically reduced with the latest Onyx runtime web, making the process even faster. Running models locally also eliminates the need for an intermediate compilation step and allows for more optimizations. For instance, using an efficient image manipulation library like Sharp instead of the canvas API. The speed difference is noticeable, with applications like semantic image search processing exceptionally quickly, even on a local browser with vanilla JavaScript. The cost savings are also substantial as $0 embeddings run locally do not require ongoing fees or the worry of APIs being deprecated. Overall, the ability to run models locally with transformers.js in Node.js provides a more efficient and cost-effective solution for handling machine learning tasks.

    • Leveraging machine learning models for efficient data comparisonsMachine learning models convert data into vectors, enabling efficient comparisons and searches using similarity algorithms. Developers can use libraries like Transformers to build applications that showcase these capabilities.

      Machine learning models can convert images, text, audio, and other data into vectors, which can then be compared using similarity algorithms like cosine similarity or dot product. This process, known as embedding, allows for efficient vector searches and comparisons. Neural networks, such as CLIP, learn to associate images and their labels, mapping each element to the same location in a multidimensional latent space where the vectors reside. This enables the comparison and search of various types of data, even in a browser. Developers can create applications using libraries like Transformers to abstract away the complexities of these models, making it an exciting and fun creative outlet. Despite the depth of the rabbit hole, exploring these concepts can lead to innovative and enjoyable projects, even for those who may feel burnt out on coding. With relatively few lines of code, developers can build impressive applications that showcase the capabilities of these models, sparking further interest and development.

    • Running AI models in JavaScript: Zero server costs and enhanced privacyBy deploying AI applications as static websites or hybrid sites, developers can eliminate server costs and enhance privacy by keeping user data local and running models on users' devices

      Running AI models in JavaScript, despite being unconventional, offers significant benefits for developers and users. The ability to deploy applications as static websites or hybrid sites allows for zero server costs, as users can contribute their compute to run the models. This distribution of application and model running eliminates the need for large server costs, especially for resource-intensive tasks like image processing. Additionally, privacy is enhanced as user data, such as images or sensor data, remains local and is not sent to external servers. The reach and scalability of the web further amplify the benefits of this approach. For instance, a background removal demo can run entirely locally in the browser, providing a major advantage for privacy-focused applications. Overall, the flexibility and cost savings of running AI models in JavaScript make it an attractive option for developers and users alike.

    • Web as a platform simplifies development processThe web offers advantages like easy distribution, user-friendly APIs, and a sandboxed environment for application development.

      Using the web as a platform for application development offers significant advantages over traditional installation methods. The ability to distribute software directly through a website, with no need for additional installations, makes the development process easier for both the developer and the user. Additionally, the browser provides a sandboxed environment with powerful APIs for accessing features like webcam, audio, location, and even machine learning models. These APIs are often more user-friendly and accessible than their counterparts in other programming languages. The growing number and sophistication of these APIs open up new possibilities for innovative applications. From a developer's perspective, the choice between creating a progressive web app or a desktop application depends on the specific use case and the available tools. Ultimately, the web as a platform simplifies the development process, reduces barriers to entry for users, and provides access to a wide range of powerful APIs.

    • Use Transformers JS for advanced machine learning in various applicationsTransformers JS is a versatile tool for developers to run neural networks and access APIs in JavaScript, offering a pipeline for data processing and user-friendly output, and can be used in Node back end or sandboxed environments with popular models like ResNet for tasks like hot dog detection.

      Transformers JS is a powerful tool that allows developers to run neural networks and access APIs with just a few lines of JavaScript. It can be used in various applications such as progressive web apps, Electron applications, and websites. The API is designed around a concept called a pipeline, which moves data through pre-processing, model inference, and post-processing. The pipeline takes care of transforming the output from the neural network into a user-friendly format. The user can choose to run Transformers JS on the Node back end for better performance or in the sandboxed environment depending on their needs. Some popular models like ResNet for object detection can be used with Transformers JS to perform tasks like hot dog detection in real-time. Overall, Transformers JS offers a flexible and powerful solution for integrating advanced machine learning capabilities into various applications.

    • Exploring AI capabilities through web demos with speech-to-text technologyWeb demos with speech-to-text technology offer no-installation and no-download experiences, allowing users to explore AI capabilities, even with larger models, without the need for local installations or complex dependencies.

      The use of AI models, specifically speech-to-text technology like Whisper, is making advanced applications more accessible to users through web demos. These demos offer no-installation and no-download experiences, allowing users to explore AI capabilities without the need for local installations or complex dependencies. This was exemplified by the viral success of the Whisper Web demo, which let users record or upload voice files and receive transcriptions in real time, all within their web browsers. Moreover, the accessibility of these AI models is a significant development, as larger models, such as Stable Diffusion, which produce high-quality results, were previously inaccessible due to their size. However, with advancements in web technologies like WebAssembly and potential future support for WebGPUs, real-time applications of these larger models may become a reality. For those interested in experimenting with AI, the easiest starting point is to try out speech-to-text demos using readily available examples, such as those provided by the transformers library. This approach offers a low barrier to entry, enabling users to engage with AI technology and explore its potential applications.

    • Running large AI models in web browsersSignificant progress is being made to run large AI models directly in web browsers, with improvements in web GPU support and FP 16, and projects like WebLLM and Web SD leading the way.

      Significant progress is being made in running large AI models directly in web browsers, despite some current limitations. Models like Sable Diffusion and MidJourney are already being run in browsers, but it requires enabling certain developer flags and taking extra steps to get the 64-bit web assembly running. Chrome is continuously updating to improve web GPU support and FP 16 support, which is essential for these models. One major limitation is the 2 gigabyte address space limit, which is due to a bug in the Onyx runtime web and the inability to load weights separately. However, the latest ONNX runtime web version (1.17) has fixed these issues, allowing for larger models to be run more efficiently. Projects like WebLLM and Web SD are leading the way in running large models in the browser using WebGPU. They've already achieved impressive results, such as running Llama 70b in the browser on a Mac. This development is exciting as it opens up possibilities for applications like generating YouTube thumbnails from photos. Keep in mind that while running models in the browser will get closer to native performance, there will always be some degradation compared to running them on dedicated hardware. Overall, the future of running large AI models directly in web browsers is promising, and we can expect even more advancements in the near future.

    • Exploring AI applications in content creation and discoveryAI can enhance podcast and video platforms by adding 3D effects to images, categorizing and grouping episodes based on content, and making content discovery easier for users.

      There's a lot of potential for using AI and machine learning models to enhance content creation and discovery, particularly in the context of podcasts and video platforms. One example given was the use of depth estimation models to turn images into 3D and apply these effects in real-time, even on websites. Another exciting application discussed was the use of AI to categorize and group podcast episodes based on their content, making it easier for users to discover related episodes. The speakers mentioned using libraries like Sentence Transformers and segmenting transcripts to achieve this. They also suggested considering pre-existing labels to help with the segmentation process. Overall, the conversation highlighted the vast opportunities for using AI to improve and enhance content creation and discovery.

    • Segmenting text data for effective embedding generationSegment text data into meaningful topics, generate embeddings for each topic, and merge related topics to create distinct and meaningful embeddings.

      When dealing with large amounts of text data, such as podcast episodes, it's essential to segment the data into meaningful chunks before generating embeddings. The use of AI to identify major time stamp topics and chunk the data into individual topics is a helpful approach. However, simply averaging all embeddings within an episode results in a blurred representation of the content. Instead, creating an embedding for every sentence and performing a similarity check between consecutive sentences is a more effective method. By joining segments with similarity scores above a certain threshold, we can identify and merge related topics, resulting in more meaningful and distinct embeddings. This segmentation process allows us to generate embeddings for each topic or segment, which can then be used for search queries or recommendations. This approach strikes a balance between granularity and computational efficiency, as it does not require embedding every word or sentence individually. However, it's important to note that current embedding models, such as transformer models, employ mean pooling to obtain a single embedding for a sentence. Mean pooling averages all per-token embeddings, potentially losing important topic information. To do better, we can explore alternative pooling methods or investigate more advanced segmentation techniques to preserve topic information while generating embeddings.

    • Addressing limitations of simple pooling methods in text data processingSimple pooling methods like averaging embeddings can blur meaning in text data, but advanced techniques like Colbert's sparse representations maintain distinctiveness. Experimenting with various methods can lead to effective text data processing and valuable insights.

      When working with text data, using simple pooling mechanisms like averaging embeddings can lead to blurred meaning, especially when dealing with words that hold different significance in different contexts. This issue can be addressed by newer models like Colbert, which use sparse representations to maintain the distinctiveness of embeddings. For instance, in the past, I developed an application to combat spam comments on YouTube. I clustered comments using k-means clustering, which worked effectively due to the repetitive nature of spam comments. This method can be a great starting point for those interested in text data processing. In my current project, I've converted all podcast episodes into embeddings, but the results are not very granular. To improve this, I plan to implement more advanced techniques, such as the ones discussed in our conversation. By using these methods, I aim to group similar episodes together and extract meaningful topics or descriptions. In summary, while simple approaches can yield impressive results, it's essential to be aware of their limitations and consider more advanced techniques when necessary. By experimenting with various methods, we can effectively process text data and gain valuable insights.

    • Utilizing LLMs in web development with quantizationLarge Language Models (LLMs) can now be used in web development for topic generation, with quantization allowing for smaller, faster models that reduce memory, compute, and bandwidth costs.

      The use of Large Language Models (LLMs) in web development has evolved significantly over the years. Traditional methods involved manual topic modeling and topic extraction, but the new technology allows for automation and generation of topics directly from the LLMs. One important aspect of utilizing LLMs in the browser is quantization, a compression technique that reduces compute and memory costs by representing network weights with lower precision data types, such as int8 instead of float32. This not only cuts down memory costs by a factor of 4 but also speeds up performance and reduces bandwidth costs for users. Quantization is crucial for in-browser usage as it allows for the download and execution of smaller, more manageable models. Additionally, JavaScript now supports various data types, including bigint and 8-bit integers, which are essential for representing and processing the data used by these models. Overall, the advancements in LLM technology and web development provide exciting opportunities for developers to explore and enhance their web applications.

    • Exploring WebGPU's Impact on Machine LearningWebGPU enables near-native speeds for neural networks, making machine learning more accessible in the browser

      Excitement surrounding WebGPU and its potential impact on web development, particularly in the realm of machine learning. WebGPU, which allows web developers to access the GPU for powerful neural network computations, is expected to revolutionize the way applications are built and run in the browser. This technology has the potential to bring near-native speeds to neural networks, making them accessible to a wider audience. The speaker, who is a Twitter personality and the creator of the Transformers JS library, encourages his audience to follow him on Twitter for updates and insights into this evolving field. He also recommends checking out the Transformers JS library, which is a valuable resource for those interested in exploring the intersection of web development and machine learning. Overall, the discussion highlights the potential of WebGPU and its role in shaping the future of web development.

    Recent Episodes from Syntax - Tasty Web Development Treats

    790: State of JS 2023 Reactions

    790: State of JS 2023 Reactions

    Scott and Wes dive into the 2023 State of JavaScript survey, breaking down the latest trends and pain points in front-end frameworks, build tools, and JavaScript runtimes. Tune in for their hot takes and insights on what’s shaping the JavaScript landscape this year!

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    789: Do More With AI - LLMs With Big Token Counts

    789: Do More With AI - LLMs With Big Token Counts

    Join Scott and CJ as they dive into the fascinating world of AI, exploring topics from LLM token sizes and context windows to understanding input length. They discuss practical use cases and share insights on how web developers can leverage larger token counts to maximize the potential of AI and LLMs.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    788: Supabase: Open Source Firebase for Fullstack JS Apps

    Scott and CJ chat with Paul Copplestone, CEO and co-founder of Supabase, about the journey of building an open source alternative to Firebase. Learn about the tech stack, the story behind their excellent documentation, and how Supabase balances business goals with open-source values.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 Who is Paul Copplestone?
    • 01:17 Why ‘Supa’ and not ‘Super’?
    • 02:26 How did Supabase start?
    • 08:42 Simplicity in design.
    • 10:32 How do you take Supabase one step beyond the competition?
    • 12:35 How do you decide which libraries are officially supported vs community maintained?
      • 15:17 You don’t need a client library!
    • 16:48 Edge functions for server-side functionality.
    • 18:51 The genesis of pgvector.
    • 20:59 The product strategy.
    • 22:25 What’s the story behind Supabase’s awesome docs?
    • 25:26 The tech behind Supabase.
    • 35:46 How do you balance business goals with open source?
    • 42:01 What’s next for Supabase?
    • 44:15 Supabase’s GA + new features.
    • 48:24 Who runs the X account?
    • 50:39 Sick Picks + Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    CJ: X Instagram YouTube TwitchTV

    Randy: X Instagram YouTube Threads

    787: You Should Try Vue.js

    787: You Should Try Vue.js

    Scott and CJ dive deep into the world of Vue.js, exploring what makes this frontend framework unique and why it stands out from React and Svelte. CJ gives a comprehensive tour, covering everything from getting started to advanced features like state management and Vue’s built-in styles.

    Show Notes

    Vue.js: The Documentary.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    786: What Open Source license should you use?

    786: What Open Source license should you use?

    Scott and CJ dive into the world of open source, breaking down its meaning, benefits, and the various types of licenses you’ll encounter. From permissive licenses like MIT and Apache 2.0 to copy-left licenses such as GNU GPLv3, they’ll help you choose and apply the right license for your project.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    785: What’s Next for NextJS with Tim Neutkens

    785: What’s Next for NextJS with Tim Neutkens

    Scott and Wes dive into the world of Next.js with special guest Tim Neutkens from Vercel. They explore the latest updates, including the React Compiler and React Server Components, discussing their impact on developer workflows and the future of Next.js development.

    Show Notes

    • 00:00 Welcome to Syntax!
    • 00:30 What does the React Compiler do?
    • 05:04 Will React Compiler help with managing Context?
    • 06:39 What happens if you’re not using a React Compiler?
    • 09:30 Will this work on any NextJS version?
    • 12:18 What are React Server Components?
    • 16:28 Shipping all the data inside an encapsulated component.
    • 20:17 Clearing up the frustrations around retrofitting server components.
    • 23:13 Handing migration.
    • 28:30 Is this just a fetch request with props?
    • 36:41 How closely are the NextJS and React teams working?
    • 41:53 Will we ever get Async Client Components?
    • 43:52 Async Local Storage API.
    • 45:31 Turbopack.
    • 57:51 Sick Picks & Shameless Plugs.

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    784: Logging × Blogging × Testing × Freelancing

    784: Logging × Blogging × Testing × Freelancing

    In this Potluck episode, Scott and Wes tackle listener questions on modern blogging, website environmental impact, and using LangChain with LLMs. They also cover CSS hyphens, unit vs. integration testing, and balancing web development with new parenthood.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott: X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    783: How We Built a Netflix Style “Save for Offline” Feature Into Syntax

    Scott and Wes dive into the world of browser caching for audio files, exploring the File System API and the Cache API. They discuss size restrictions across different browsers, how tools like Riverside.fm leverage IndexedDB, and walk through code examples for creating, retrieving, and managing cached audio data.

    Show Notes

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    782: The Developer’s Guide To Fonts with Stephen Nixon

    782: The Developer’s Guide To Fonts with Stephen Nixon

    Scott and CJ are joined by Stephen Nixon of ArrowType to delve into the world of fonts and type for developers. They explore the intricacies of font creation, the utility of variable fonts, and offer tips for making visually appealing typography on the web.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    781: Potluck - The Value of TypeScript × Vue vs Svelte × Leetcode

    In this potluck episode of Syntax, Scott and CJ serve up a variety of community questions, from the nuances of beginner vs. advanced TypeScript to the pros and cons of SvelteKit. They also discuss falling out of love with React, shipping private packages via NPM, and the eternal struggle of always starting but never finishing projects.

    Show Notes

    Sick Picks

    Shameless Plugs

    Hit us up on Socials!

    Syntax: X Instagram Tiktok LinkedIn Threads

    Wes: X Instagram Tiktok LinkedIn Threads

    Scott:X Instagram Tiktok LinkedIn Threads

    Randy: X Instagram YouTube Threads

    Related Episodes

    Pixel Streaming vs WebGPU: Which One is Best for Your Immersive Experience?

    Pixel Streaming vs WebGPU: Which One is Best for Your Immersive Experience?

    This story was originally published on HackerNoon at: https://hackernoon.com/pixel-streaming-vs-webgpu-which-one-is-best-for-your-immersive-experience.
    When it comes to crafting immersive experiences that scale, technologists must make critical architecture decisions.
    Check more stories related to futurism at: https://hackernoon.com/c/futurism. You can also check exclusive content about #metaverse, #interactive-content, #webgpu, #immersive-technologies, #pixel-streaming-vs-webgpu, #webgpu-review, #pixel-streaming-review, #pixel-streaming-pros-and-cons, and more.

    This story was written by: @jpolhem. Learn more about this writer by checking @jpolhem's about page, and for more stories, please visit hackernoon.com.

    When it comes to crafting immersive experiences that scale, technologists must make critical architecture decisions before the project enters production. Here's how to consider whether WebGPU or Pixel Streaming is right for your next immersive media project.

    Episode 200: WebGPU

    Episode 200: WebGPU

    In this episode, Chet and Romain speak with Ken Russell and Corentin Wallez from the WebGPU team. WebGPU is a new API that brings modern GPU rendering and compute functionality to web and other platforms (including Android!). We talk about the genesis and capabilities of WebGPU, WGSL (WebGPU’s new shading language), the state of WebGL (the predecessor API for web GPU rendering), and lots of other fun related graphics topics.

    Ken, Romain, and Chet (not pictured: Corentin, who is on the monitor behind the photographer)


    Links:

     

    Romain: @romainguy, romainguy@threads, romainguy@androiddev.social

    Tor: tor.norbye@threads and tornorbye@androiddev.social

    Chet: @chethaase, chet.haase@threads, and chethaase@androiddev.social

    Ken: @gfxprogrammer
    Corentin: @DaKangz and @DaKangz@mastodon.gamedev.place

    Catch more from ADB → https://goo.gle/adb-podcast
    Subscribe to Android Developers YouTube → https://goo.gle/AndroidDevs