Skip to content

Monthly Update: 2018.01.31

George Singer edited this page Feb 26, 2018 · 1 revision

Table of Contents

  1. Progress this month
  2. Simula's Rendering Problem
  3. New Contributors this Month
  4. Goals for February
  5. Resources & Explanation of the Idea

If you're new to this list, or need a refresher of what Simula is about, see the links at the bottom of this email for an explanation of the idea. Simula is currently looking for feedback, contributors, and alpha testers. Email me back if you're interested: [email protected].

Progress this month

Here's a gfy of Simula in action. As you can see, some new features have been added to Simula this month, but the window manager's rendering bugs are still prevelant (see next section). Here are the details:

  1. Controller Rays. Yellow rays now extend from each of the Vive controllers (acting as VR pointing devices).

  2. Reliable Click Events. Mouse events now happen where they're supposed to happen (i.e., pointing at a button and clicking actually clicks the button).

  3. Right-Click Functionality. Button (1) as shown in the diagram below acts as Simula's right-clicker: Vive Diagram

  4. Twistable Windows. Grabbing a window and making a twisting motion with your Vive controller now actually twists the window.

  5. Simula Ubuntu Package. Simula now has a Debian Package for Ubuntu' development branch (Bionic Beaver 18.04). To install Simula, run

    sudo add-apt-repository "ppa:georgewsinger/simula"
    sudo apt-get install simula
    
  6. AMD Fix. Recall from last month that 4 out of 5 alpha testers failed to run Simula due to it not working on AMD cards. We tried to fix this issue this month but failed, and this led to us reconsidering our entire approach to Simula's rendering engine. See the next section.

Simula's Rendering Problem

Simula's issue with AMD cards can be visualized as follows:

img

In words: AMD cards rely on mesa drivers to work with SteamVR, and right now mesa drivers interact poorly with Vulkan external memory objects (buffers we are using for passing graphical data from OpenGL to Vulkan). Overall, Simula's ad hoc rendering system is (i) causing issues with AMD cards, (ii) delaying feature implementations by weeks, and (iii) hindering performance. We need something new.

Here are the options we considered for Simula's new rendering engine:

# Option Pr Data
1 Create Haskell bindings for existing low-level rendering engine (i.e., Godot). 0.40 With our MVP done, we can think medium-term and attach ourselves to something more powerful.
2 Refactor existing Simula rendering engine (or start over in Haskell). 0.33 Schell feedback: we're already half-way there for this option.
3 Re-write Simula from scratch in C, C++, or Rust using an existing low-level rendering engine. 0.22 Re-writes are almost always bad; we lose Haskell.
4 Use existing Haskell rendering engine. 0.01 None known available.

The decision was close but we edged out with (1). The full decision outline can be viewed here.

New Contributors this Month

  1. Ludvig Böklin. Ludvig has volunteered to help Simula's nix build situation.
  2. Thomas Herzog. Thomas (Godot developer and Haskeller) has volunteered to provide some oversight in Simula's attempt to bind itself to Godot's rendering engine.

David Kraeutmann was also in New York this past month. We met up for the first time in person. 👍

img

Goals for February

  1. Experiment with Godot to fix Simula's rendering problems. This will involve making Haskell bindings for Godot, and keeping things minimal upfront. I estimate there's a 1 in 4 chance that Godot won't be the right answer for Simula, even after investing some effort in it. So we should be sensitive to that up front to avoid wasting time if it doesn't work.

  2. Grow alpha testers with Simula's new Ubuntu package. While we can't grow our AMD userbase, we can continue to grow our Nvidia user base. Investments in other packages (Arch, nix, etc) are also still in the cards with the help of Ludvig.

  3. Be more transparent. Simula has had transparency issues over the past few months. The monthly emails have been good for this, but not good enough. It should be more clear to everyone what is going on with Simula's day-to-day development and decision making. It should also be clear what's open for being worked on, the progress that's been made, and how one can impact the project's decision making processes.

    • GitHub Projects. Simula's ongoing projects and decision-making will henceforth be placed in its GitHub Projects Page – which will encourage more usage of GitHub Issues. This will include the projects Simula is currently undergoing.
    • GitHub Wiki. Simula's GitHub Wiki will start hosting documents relevant to Simula's long-term goals, aspirations, and project health.

Resources & Explanation of the Idea