Hacker News new | past | comments | ask | show | jobs | submit login

The repo at https://fuchsia.googlesource.com reveals a rather interesting UI story for this new operating system.

It seems like the intention is to use Flutter [1] as the UI layer. Flutter uses the Dart language, so there's a Dart environment included in Fuchsia too [2].

For rendering, Fuchsia includes a project called Escher [3] which is described as a physically based renderer that supports soft shadows, light diffusion and other advanced effects. Looking at the source code, Escher is designed to use either OpenGL or Vulkan as the underlying graphics API. (There's an iOS example project included in Escher's source tree. Would be interesting to build that.)

It's not immediately obvious why a lightweight operating system would need a renderer that can do realtime soft shadows and light effects...! But I think the idea here is to build an UI layer that's designed from scratch for Google's Material design language. Shadows and subtle color reflections are a major part of that "layered paper" aesthetic.

So, the stack seems to be: Dart is the language for GUI apps, Flutter provides the widgets, and Escher renders the layers.

The underlying application framework is called Mojo [4]. It already offers bindings for Go, Java, JavaScript, Python and Rust in addition to Dart, but maybe those languages are meant for services rather than GUI apps. (At least I can't see an easy way to create Flutter widgets from something like Rust without loading the Dart VM.)

[1] https://flutter.io

[2] https://fuchsia.googlesource.com/dart_content_handler/

[3] https://fuchsia.googlesource.com/escher/

[4] https://fuchsia.googlesource.com/mojo/

> Shadows and subtle color reflections are a major part of that "layered paper" aesthetic.

They're a part of design language, raw elements of design. This can get much bigger than the Material Design of now. It can make sure that the subtle or even zany, domineering design of tomorrow has just the right level of refinement for its intended audience.

IMO as a graphic designer and as someone who has been doing 3D rendering as a hobby for 15 years, it's pretty awesome to think about PBR moving into the area of UI.

PBR == Physically-based rendering?


Most interesting for me was the Mojo interfaces defined at https://github.com/fuchsia-mirror/mojo/tree/master/public/in... and https://github.com/fuchsia-mirror/mojo/tree/master/services.

E.g. the application interface at https://github.com/fuchsia-mirror/mojo/blob/master/public/in...

And the framebuffer interface https://github.com/fuchsia-mirror/mojo/blob/master/services/...

I don't see any mention of a file system.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact