Intro, news, and status

A bunch of us in the community feel that the vision of “letting the web win” with a gaming-inspired all-JS rendering engine with native performance on all platforms is the right way to go and far superior to alternatives. We’ve grown tired of the closed development happening over at Famous so we thought we’d have a bash at writing our own engine.

We’ll keep you informed, develop in the open, and encourage you to be a part of a true open source project. You can get involved from the get go by sharing your insight and opinions in the forums (but we do ask you to please search first and “like” existing posts unless you have something new to add) and on GitHub via issues and pull requests.

In brief, here are the three main philosophical characteristics that we want our project to adhere to:

  1. open source
  • The library will be MIT or similar.
  1. openly developed
  • All development will happen on GitHub and be publicly visible at all times, including development of the website, and revolving tools, not just the library itself.
  1. community driven
  • We’ll listen and respond to community ideas and handle issues and pull requests right away.

So what’s happening now?

A few of us are working (independently) on our own engine rewrites, with the eventual plan to merge. That might sound counter productive (rather than dividing up the work from the get-go), but we wanted to avoid “coding blind”, to make sure all parts of the system work together well in real world conditions, that all devs have personal familiarity with the full scope of the project, and ultimately, to encourage creativity in eventually taking the best solution to each problem.

Note: the option of forking Famous was considered but in the end we came to the conclusion that making our own library would lead to better results.

When can we see something?

It’s too early to say. This is still an experiment and not a full time job for any of us, but the good news is that we’re all in the same boat and we all want something out as soon as possible. Ideally, the next stage of the project (the merge) will commence in late November, and you can follow that progress in the merge plan thread. Until then, you can look out for “first look” posts and for commits in the various infamous repos.

10 Likes

I love the transparency and openness of this new engine!! I look forward to seeing this transform into something great by virtue of the many talented people, who are able to contribute!!

2 Likes

Thought I’d sum up the current state of things:

We’re in the process of gathering our ideas by making individual prototypes, learning from the experience, planning to merge together into a single project. Three of the prototypes so far already work and can render scenes. Those are

and one prototype is still a work-in-progress, and will have demos at some point sooner than later hopefully:

1 Like

It’s been a little quiet here in the forums, but that doesn’t mean we’re not busy. We’ve all got side projects and jobs we have to attend to, etc.

I’ve recently released (I’m working on features on as as needed basis) a polyfill for the new Geometry Interfaces that are coming to the web. Mainly, I’ve implemented DOMMatrix, which is a new object coming to browsers for doing graphical matrix calculations. For example:

let matrix = new DOMMatrix

// Use methods that modify the matrix they are called on directly:
matrix.rotateSelf(45) // degrees
  .scaleSelf(1.5)
  .translateSelf(100,100,200)

// or use methods that return new matrices:
let matrix2 = matrix.rotate(45) // degrees
  matrix2 = matrix2.scale(1.5)
  matrix2 = matrix2.translate(100,100,200)

I’ll be using the new DOMMatrix API in my prototype so that it’ll work with the new standard when browsers have it natively. So far, Firefox is the first browser to have it implemented.

Didn’t know of the Geometry Interfaces specification. Looks interesting. Especially like the .getBounds() method for quads

1 Like