3D and 2D: Testing out my cross-platform graphics engine

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. bevy

    A refreshingly simple data-driven game engine built in Rust

    I don't see WASM/WebGPU changing anything when it comes to gaming, as an industry, personally. 3d visualizations and interactive websites? Yeah definitely a nice improvement over WebGL 2, if years late.

    WebGPU is pretty far behind what AAA games are using even as of 6 years ago. There's extra overhead and security in the WebGPU spec that AAA games do not want. Browsers do not lend themselves to downloading 300gb of assets.

    Additionally, indie devs aren't using Steam for the technical capabilities. It's purely about marketshare. Video games are a highly saturated market. The users are all on Steam, getting their recommendations from Steam, and buying games in Steam sales. Hence all the indie developers publish to Steam. I don't see a web browser being appealing as a platform, because there's no way for developers to advertise to users.

    That's also only indie games. AAA games use their own launchers, because they don't _need_ the discoverability from being on Steam. So they don't, and avoid the fees. If anything users _want_ the Steam monopoly, because they like the platform, and hate the walled garden launchers from AAA companies.

    (I work on high end rendering features for the Bevy game engine https://bevyengine.org, and have extensive experience with WebGPU)

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. wander

    wander - the Wasm Renderer

  4. manifold

    Geometry library for topological robustness (by elalish)

    For cad kernels I highly recommend manifold https://github.com/elalish/manifold

  5. thorvg

    Thor Vector Graphics is a lightweight portable library used for drawing vector-based scenes and animations including SVG and Lottie. It can be freely utilized across various software platforms and applications to visualize graphical contents.

  6. Graphite

    2D vector & raster editor that melds traditional layers & tools with a modern node-based, non-destructive, procedural workflow.

  7. wgpu

    A cross-platform, safe, pure-Rust graphics API.

  8. Flutter

    Flutter makes it easy and fast to build beautiful apps for mobile and beyond

    Thanks - that link does not appear to be open access, anyways I don't think I've seen it. I'm familiar with Flutter at a high-level (Kevin Moore gave a great talk on it at Wasm I/O), and I think other than requiring users to work in Dart, it is probably one of the most powerful ways to do cross-platform UI today.

    Worth noting that their original GPU backend was Skia, and now they are retooling around Flutter GPU (Impeller)[0], which is kind of designed similarly as an abstract rendering interface over platform-specific GPU APIs.

    [0]https://github.com/flutter/flutter/wiki/Flutter-GPU

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. Kha

    Ultra-portable, high performance, open source multimedia framework.

    I am glad people are working on it!!

    Have you seen Kha by any chance? It has similar goals. I find it quite awesome, but it won't gain mass adoption for a bunch of reasons. https://github.com/Kode/Kha

    Someone built an immediate mode renderer on top https://github.com/armory3d/zui, which is utilised by ArmorPaint https://armorpaint.org. I also use Zui for my own bespoke 2D game engine.

    I find this tech and tooling really quite amazing (just look at how little source code Zui has) given just how small the ecosystem around it is. I think Kha really illustrates what can be achievable if the lower levels have robust but simple APIs, just exposing the bare minimum as a standard for others to build upon.

    For the kind of project I work on (mostly 2d games), I think it would really awesome if your framework also supported low level audio, and a variety of inputs such as keyboard, mice, and gamepads. If it also had decent text rendering support it would basically be my dream library/framework.

  11. zui

    Discontinued Immediate Mode User Interface (by armory3d)

    I am glad people are working on it!!

    Have you seen Kha by any chance? It has similar goals. I find it quite awesome, but it won't gain mass adoption for a bunch of reasons. https://github.com/Kode/Kha

    Someone built an immediate mode renderer on top https://github.com/armory3d/zui, which is utilised by ArmorPaint https://armorpaint.org. I also use Zui for my own bespoke 2D game engine.

    I find this tech and tooling really quite amazing (just look at how little source code Zui has) given just how small the ecosystem around it is. I think Kha really illustrates what can be achievable if the lower levels have robust but simple APIs, just exposing the bare minimum as a standard for others to build upon.

    For the kind of project I work on (mostly 2d games), I think it would really awesome if your framework also supported low level audio, and a variety of inputs such as keyboard, mice, and gamepads. If it also had decent text rendering support it would basically be my dream library/framework.

  12. armortools

    3D Content Creation Tools

    I am glad people are working on it!!

    Have you seen Kha by any chance? It has similar goals. I find it quite awesome, but it won't gain mass adoption for a bunch of reasons. https://github.com/Kode/Kha

    Someone built an immediate mode renderer on top https://github.com/armory3d/zui, which is utilised by ArmorPaint https://armorpaint.org. I also use Zui for my own bespoke 2D game engine.

    I find this tech and tooling really quite amazing (just look at how little source code Zui has) given just how small the ecosystem around it is. I think Kha really illustrates what can be achievable if the lower levels have robust but simple APIs, just exposing the bare minimum as a standard for others to build upon.

    For the kind of project I work on (mostly 2d games), I think it would really awesome if your framework also supported low level audio, and a variety of inputs such as keyboard, mice, and gamepads. If it also had decent text rendering support it would basically be my dream library/framework.

  13. flutter_filament

    Discontinued 3D rendering toolkit for Dart and/or Flutter [Moved to: https://github.com/nmfisher/thermion]

    Related - I’ve written a Flutter package to wrap the Filament PBR rendering package and I hacked together a WASM implementation so I could build 3D apps in Flutter for web.

    It’s still just experimental (I’m waiting for some upstream Dart fixes to land around WASM FFI, and shared memory support would be nice in Flutter too) but I think it’s promising. Bundle size is a bit of an issue at the moment too.

    https://github.com/nmfisher/flutter_filament

  14. WebGL_Compute_shader

    WebGL 2.0 Compute shader Demos

    It should be noted that the reason we don't have compute shaders on WebGL 2.0 was Chrome team dropping the ball on them.

    https://github.com/9ballsyndrome/WebGL_Compute_shader/issues...

    https://www.khronos.org/webgl/public-mailing-list/public_web...

    https://issues.chromium.org/issues/40150444

  15. harfbuzzjs

    Providing HarfBuzz shaping library for client/server side JavaScript projects

    There is a well maintained Wasm build of harfbuzz: <https://github.com/harfbuzz/harfbuzzjs> with both OpenType and AAT shapers support, which should be enough but you can also provide your own shaper implementation in Wasm yes.

    We're successfully using Wasm harfbuzz to render text in a web-based design tool with relatively high usage so there should be no issues integrating it :)

  16. tauri

    Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

    Well the great thing about WebAssembly is that you can port QT or anything else to be at a layer below -- thanks to WebAssembly Interface Types[0] and the Component Model specification that works underneath that.

    To over-simplify, the Component Model manages language interop, and WIT constrains the boundaries with interfaces.

    IMO the problem here is defining a 90% solution for most window, tab, button, etc management, then building embeddings in QT, Flutter/Skia, and other lower level engines. Getting a good cross-platform way of doing data passing, triggering re-renders, serializing window state is probably the meat of the interesting work.

    On top of that, you really need great UX. This is normally where projects fall short -- why should I use this solution instead of something like Tauri[2] which is excellent or Electron?

    [0]: https://github.com/WebAssembly/component-model/blob/main/des...

    [1]: https://github.com/WebAssembly/component-model/blob/main/des...

    [2]: https://tauri.app/

  17. component-model

    Repository for design and specification of the Component Model

    Well the great thing about WebAssembly is that you can port QT or anything else to be at a layer below -- thanks to WebAssembly Interface Types[0] and the Component Model specification that works underneath that.

    To over-simplify, the Component Model manages language interop, and WIT constrains the boundaries with interfaces.

    IMO the problem here is defining a 90% solution for most window, tab, button, etc management, then building embeddings in QT, Flutter/Skia, and other lower level engines. Getting a good cross-platform way of doing data passing, triggering re-renders, serializing window state is probably the meat of the interesting work.

    On top of that, you really need great UX. This is normally where projects fall short -- why should I use this solution instead of something like Tauri[2] which is excellent or Electron?

    [0]: https://github.com/WebAssembly/component-model/blob/main/des...

    [1]: https://github.com/WebAssembly/component-model/blob/main/des...

    [2]: https://tauri.app/

  18. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Ask HN: What's the stack for your "home-cooked meal" apps?

    4 projects | news.ycombinator.com | 5 Jan 2024
  • [self-promo] Svelte + Rust for a desktop photo explorer

    2 projects | /r/sveltejs | 14 Nov 2023
  • Modrinth's launcher is now on alpha

    2 projects | /r/feedthebeast | 24 May 2023
  • how to start building desktop application with rust for newbie

    2 projects | /r/rust | 19 May 2023
  • This Month in Spyglass #2 - Search your Reddit saved &amp; upvoted posts, user configurable actions, and more!

    3 projects | /r/rust | 11 Mar 2023

Did you know that Rust is
the 5th most popular programming language
based on number of references?