Simula One: an office-focused, standalone VR headset built on top of Linux
simulavr.com
simulavr.com
We're flattered that someone posted us to HN, but we were honestly not ready for this much publicity at this precise stage of our project. It would have been better had this happened a few weeks from now, when we have more accurate footage of our actual prototype to show. Let me explain:
1. *Video footage.* The video footage on the front page of www.simulavr.com is taken against an HTC Vive and an older prototype of our window manager. It doesn't showcase the higher resolution of the Simula One (more than 4x that of the Valve Index), or any of the new features we are intending on releasing with it (hand tracking, AR mode, environments, etc).
2. *Prototype pictures.* The website doesn't have any actual photos of our headset yet! That's because we are in the process of finalizing the design. We have printed parts and plenty of renderings, but they are still changing every week.
3. *Specs.* The specs are close to the final specs, but still placeholders. Between supply chain issues, stuff still under development, and issues getting support from manufacturers at our volumes, we might have to change things for the final prototype.
One of the reasons we threw up this website in its current form was to get the ball rolling for manufacturers. They won't supply us with parts unless we have some sort of product interest, but we can't generate any sort of product interest unless we have some sort of website. It's very much a chicken and egg sort of problem.
We appreciate everyone's kind words, yet also understand the skepticism. For people on the waitlist: expect updates to start to come from us in a few weeks, when we will show some previews of some of the actual goodies which makes our headset special.
1. The software is relatively usable, and you can try it out right now on https://github.com/SimulaVR/Simula
2. The hardware is still being worked on, and the website is kind of a list of expected specs/placeholder in that regard:
2.a. The compute unit is tested and works, but requires a custom carrier board to fit the form factor. This is a blocker for the final product, but relatively low priority for the prototype.
2.b. Lens system design is scheduled to be complete in early November, with first prototypes available in early December. We're planning to use Valve Index lenses as a stopgap right now for prototyping etc.
2.c. We're currently solving a few challenges in driving the displays, as we're pushing the boundaries of the available technology, and at our volumes support from manufacturers is like pulling teeth. BOE supplies the 2880x2880 panels and there aren't even enough docs to figure out how to drive the (non-trivial, local dimming based) backlight.
2.d. We're also experimenting with different approaches to tracking as our original plan (RealSense) became end-of-life recently. I'm interested in an mmwave based solution, but we might just use RGB cameras instead.
2.e. The mechanical design for the front part is reasonably advanced, but we're still working on the back part.
There's a lot more going on right now that's probably not coming to mind immediately, but that should provide a good overview.
The main problem with off-the-shelf solutions is that they add another set of cameras, and afaik nothing exists that allows custom cameras.
We're gonna need an FPGA anyway due to the large amount of IO (2 cameras for AR, 2 for eye tracking, IMU, whatever other sensors we need, plus potentially mmwave radar if we decide to go that way) so it's tempting to put the processing on the FPGA as well.
Hand tracking is a difficult beast especially, and we would like to just use the new Ultraleap module for that, but they don't support Linux yet.
Eye tracking is relatively simple because it's a closed/controlled environment. Just some IR LEDs, an IR camera, and some edge detection and math.
SLAM (positional tracking) has a lot of different approaches . There's open source software, but it's generally running on a normal computer and that's not particularly efficient (especially with our GPU already loaded). Some research papers use a FPGA, but the code is rarely available so you just have a starting point.
You could probably crib the software from DepthAI or similar? We could implement the AI coprocessor they're using and adapt the code. I haven't looked closely enough yet to see whether that's a good use of resources.
So less processing + potentially less power + better performance, in theory.
what is the predicted price point?
how to fit prescription lens ?
About 2-2.5k predicted price point.
Prescription lens we'll figure something out. We're trying to keep enough eye relief to support glasses, and we'll have at least provisions for mounting prescription lenses.
If we can, we'll be able to supply prescription lenses with the headset (for a surcharge) or collaborate with an existing vendor to provide lenses.
On a side note... are you on Kickstarter?
Let me ask you a quick question that is surely on the minds of many other HNers:
Are you guys using the prototypes for day-to-day work (i.e., are you dogfooding Simula hardware and software)?
And I love seeing the progress unfold on our own headset, because I can't wait to start working in it.
1. *Text quality.* Text quality is really important, especially to sustain long work sessions. This is why we're pushing as hard as we can on resolution. It's more important for work than it even is for gaming, because gaming doesn't require you to sustain focus on detailed text for long periods of time.
2. *Headset bulkiness/portability.* Headsets are too bulky, and tethered ones are annoying to work with. While the Simula One won't be as light weight as headsets will become 10 years from now, it will at least be truly portable (not requiring you to tether to a PC with chords or over WiFi). We are also planning on using something like a halo strap to make flipping the headset up and down more easy (instead of requiring you to take the headset fully off or on).
3. *Real world stuff.* VR forces you to be very touch-type proficient. But sometimes you want to be able to see your keyboard, or see your surroundings, etc. We are planning on having an "AR mode" for our headset to help accommodate for this.
What about 4. Impact on neck.?
Is there any risk of repetitive-stress neck injury from all the looking up and down?
Have you never played VR Zork? You haven't lived yet.
Wait a sec, are you on HN via Simula right now?
Well I reckon that problem is now solved.
I think it looks like a really positive first step. Yeah, the resolution is too low but that's solvable with a better headset. It's a bit laggy, but that's probably due to recording video of VR being hard. The windows are weird sizes, but that might be user choice. Heck, I personally don't want to code things floating in space, but that's just a matter of choosing a different background. All those problems are solvable.
There are loads more problems that are also likely solvable too. And maybe some that aren't. We don't know yet. I'm glad someone is working on the problem to find out. That's far better than not having, maybe, one day in the distant future, a VR option to use for work.
It doesn't need to be a finished product. Just give FOSS developers something to work with, and the finished product will automatically emerge ;)
"Finished"? No. Somewhat usable and constantly being updated or rewritten? Probably.
I look at some of the Gnome 3 design choices and I start to question that.
To each their own. You might not be on the left of the S curve for that technology, that's all :)
https://en.wikipedia.org/wiki/Technology_adoption_life_cycle
I'm at the tail of that S-curve for sure, so maybe I'm just get-off-my-lawning. Thanks for sharing.
For me, the MVP for working in VR is replacing my fairly standard monitor setup (3x24-27", 12-14px text size, 60hz). I don't really care about virtual meetings or whiteboards or environments, I just want to make the transition to having what would be unreasonable/impossible in hardware (dozens of resizable windows I can easily rearrange and fill my whole FoV with. Nail that and I will gladly drop a couple of grand on it.
Haskell might be easy when you get the hang of it, but the vast majority of programmers haven't, and the language ideas are alien compared to the mainstream ones (Python, JS, C++, Lua).
The design of Haskell also encourages users to be very clever, which only makes code harder to read.
Exactly how Haddock produces such wonderful automatic documentation, I don't know, but good God it does. The strict static types clearly help -- you can see exactly what every function inputs and outputs, what every data type needs, etc. And then you can jump to the definitions of any of those things, and if need be (almost never), the source code that defines them.
I have to write object-oriented bullshit all day for my job, if I started a fun new project like this I'd happily choose Haskell. If people who only know JS and won't learn anything new can't contribute then that's a cost worth bearing.
I think this is an unfair and unnecessarily-snarky take.
My list of languages is fairly long these days. I’ve written php, ruby, and go in reasonable volume for mostly personal projects. I used to teach embedded C at uni. I write python professionally every day. Recently I’ve even started playing with rust (and had some success thanks to the awesome book). The list is far longer, these are just the ones used the most. I’ve been writing code in some capacity for the last 20 or so years (first self-taught, then at university, and more recently professionally full-time).
Despite all that, and not for lack of trying, for whatever reason purely functional languages are the only ones that elude me. Every couple of years I try Haskell or erlang again and I just get nowhere fast.
Maybe it’s because I was never very good at maths, maybe it’s because I haven’t had sufficient motivation, or maybe I just haven’t found the right monad blog post to convert me. All I know is Haskell remains chronically out of reach to many experienced and inexperienced devs alike.
What you want is something that puts the movement of memory between processes and threads front-and-center. Half the difficulty of writing a 3D rendering engine is coming up with a good memory model for loading 3D models and textures to push them onto the GPU. That really sounds more like Rust's wheelhouse than Haskell.
GC hasn't been an noticeable issue as a result.
What does it mean for the 3D environment to be inherently object-oriented?
I would pick Rust as well here but just because Haskell has exceptions and it has less emphasis on safety and less pleasant defaults than Rust. In order to get the Haskell I want I need several pragmas and a different prelude...
I would say Rust is pretty functional itself, though.
That's because all of the languages you listed are really similar conceptually. PHP, Ruby, Go, C, and Python (and others you didn't list: Java, C++, C#, Perl, Lua, JavaScript) are far more similar to each other than they are to Haskell - they have different syntax and slightly different semantics, but for the most part they're all in the same language family. It's much easier to pick up Java after learning PHP than it is to learn programming for the first time - or, alternatively, to learn a structured language after having written unstructured BASIC for your whole life.
Lisp users (of which I am one) frequently talk about how all of those languages are "basically the same" - but for all that, Common Lisp is still way more similar to Python than it is to Haskell (which I've also tried and failed to learn).
Also, Haskell isn't just a functional language - it also is a lazy language, which means you have to now learn two new ways of thinking at once.
Erlang is similarly in a different world from the mainstream imperative-OO languages, but I don't think that being functional is the only thing that makes it hard to learn - it also has a fundamentally different model of concurrency (as well as being designed around concurrency) that is difficult to learn if you're just used to pthreads.
Similarly, I think that Prolog (logic programming), Adga (is it a programming language, or a theorem prover?), Rust (maybe; lifetimes), and Forth (stack programming) all present unique challenges to people like us that have only written Python/Ruby/Perl/Go/Lisp...
I hadn’t before considered the laziness part of Haskell, perhaps I simply hadn’t made it far enough to be aware of it before. Maybe that perspective will help me next time I feel the urge to try out fp again.
fwiw to your point about other languages, Rust has certainly presented a challenge due to new paradigms but it’s never felt insurmountable. The rust book is truly an incredible piece of writing that imo makes the language so much more accessible than it would otherwise be.
So users will probably be able to hack together what they want, but they may struggle to grow a large developer community. But that can still work out okay.
This is BS - find me some "clever" code in one of these Haskell projects and I bet it's not clever but simply using a set of abstractions there maintainers like and grok and the reader just doesn't understand.
What people call "clever" code in mainstream programming is not in any way similar to the Haskell being referred to.
Luckily in the Haskell world, we don't ascribe negative attributes like "cleverness" to code that isn't outsider-friendly. We gain a lot by not requiring that all our code is understandable by a mainstream programmer.
However, I think that purely functional languages are useful for basically everything. Haskell is my general purpose language of choice, unless libraries or system constraints force me to another language.
In other words, those problems that don't involve users and the outside world.
Pure languages for pure problems. Impure languages for impure problems. It computes.
This looks like a really neat project, I think not having pictures of the headset front & centre makes it feel very vapourware though, even if it's a hacked together development unit we still want to see it. Arguably, we might even want to see that more.
I struggle to envision this in my workflow though, my experience with VR headsets suggest that for a lot of text they might not be the best choice just yet. Excited to see where this goes though!
I love my iPad, but it's ultimately an expensive content consumption device.
The Steamdeck can run whatever you want on it, this opens it up to being useful even a decade from now.
On the website, the demo has the person drinking coffee, the youtube window is the wrong ratio, the text is too tall. For me, I really want picture perfect rendering before jumping. I don't want to look at badly rendered stuff, its part of the reason linux was so hard back in the day, getting your text to render and screen resolution to work right.
Now, for me, it looks like I can fit about as many terminals on "screen" as I can on two 1280x1024 screens. In all the demos, there are at most 5 windows open. On my current screen I have one browser, and 8 terminals, and there is still loads more space.
The thing that makes me a little sad is that we still all appear to be stuck at rendering everything on the inside of a sphere. If we are in VR, then we don't have to limit our selves to laying out windows on a single primitive. Where are the virtual shelves? where is the quick change, what about hotspots to bring groups of windows back into near field.
We have unlimited z depth, surely this is time to start using it? unlike a normal screen, we have parallax and gaze sensors, we really need to start using them.
(it looks like they don't have room tracking, so feels like they have limited 6dof source: coffee video, I'd expect much more sideways translation if they had proper headset tracking)
In general, I often have up to 10 tabs open on Gnome terminal, and a GNU screen session in each with up to 10 screens. Maintaining lots of context.
Within a single GNU screen session, I'll often have a build window, some editing windows for code, editing windows for config files, etc.
depending on the project, it'll normally be browser for reference (or if its web based testing as well, but thats rare)
then I have about between 1/2 and 2/3rds of the screen space left to have terminals in.
I'll have one/two long terminals open with vim for the main file(s) I'm working on, then 1-4 smaller terminals for running the program/tests. if its a big project, then more terminals for reference (ie library one, library two etc.).
Think of it more as having a really big desk, with loads of copies of the same reference book open to different pages. Its quicker to glance than it is to alt-tab. For me (and i'm not claiming this is a universal trait) that flash of screens where we switch context from one full screen to the other makes me loose context on what I'm working on.
I have virtual monitors as well, all split into contexts, so one will have email/slack/$messenger one will have "personal" internets (ie timewasting sites) and a professional browser, thats logged into company services. If I'm doing graphics, then drawing/editing screens as well.
I used to be a proponent of many monitors. I bought a matrox parhelia new to support triple monitors when they came out. (yes I am that old). However due to the way my mind works, I found that with three screens I would end up in a spinlock with two browsers open, one in each monitor, and not do any work.
I keep one window on screen at any time, full screen. I use 2 sets of 16 virtual desktops, tmix, emacs and brave. Maybe 10 instances of each app, and of within each maybe ten tabs. So that's a total of about 300 windows. It gives me zero visibility problems. I much prefer using my hands to change whatn I'm looking at instead of my neck.
However a lot of the time the Vims are there for reference.
> If we are in VR, then we don't have to limit our selves to laying out windows on a single primitive. Where are the virtual shelves? where is the quick change, what about hotspots to bring groups of windows back into near field.
From playing VR games, actually the best implementation of this I've seen is to put them on a "belt" of sorts. Like an oversized toolbelt (so they're away from your body) so you can simply look down and grab stuff.
Spheres do work well, though. It keeps all the text at the same distance from you, so the edges aren't out of focus. I suspect it also makes zooming easier since you can just move the camera closer. If you have an actual 3D space, moving the camera can get weird, and the camera being weird in VR is really disorienting.
> (it looks like they don't have room tracking, so feels like they have limited 6dof source: coffee video, I'd expect much more sideways translation if they had proper headset tracking)
Not having room tracking doesn't prevent movement. You'd just move with wasd like before. Not having room tracking means you can move your chair 6 inches without all your windows getting shifted. Likewise, you can stand up in your standing desk without re-adjusting all the windows.
Plus I'm sure it'll help keep the cost down.
Every time I stand up and walk to a different room the screens move to the periphery, and return when I sit. When a loud sound is heard, a notification identifies the sound and asks if you want to replay it. Etc.
Some of the experiences I've had in VR are unrivaled by any pancake game i've ever played for that very reason.
I'm not 100% sure I want to be in VR all day all the time. But VR should have a place in at the very least a remote workforce.
That said, this "pancake" problem reminded me of the old Wii head-tracking project.[1] There might be an interesting hybrid opportunity with that idea and 3d avatars. I feel like the head-tracking hack never really took off because it only worked as a solo experience. But since remote work is mostly us all individually sitting at a computer I could see it working better.
Combine this idea with a large dedicated monitor/tv and now you have something that would literally just feel like a window/portal to the person you're talking to.
step 1 is real-time content digitization and obstacle avoidance (available now). step n involves synchronizing cameras and projectors for a deviceless AR experience - true "remote whiteboarding." we've completed this in laboratory conditions, hope to release it next year.
Can't do that second part "through" videoconferencing apps - not without a deeper integration (read: participation with the companies in question). It's on our list of possible developments but will require dancing partners on the other side.
I get by my workday nowadays with minimal head movement, enough to avoid it getting stuck but I don't have to crane around too much. That's probably not an issue in a VR environment either though, since your primary thing will be in front of you as well.
Comfort is another one, I think I'd like to be more reclined if I didn't have to look at a screen. But then I'm worried about muscle atrophy, I don't do enough sports and exercise as it is.
There are a few reallly high resolution VR headsets that I can't afford. But I just heard about a 200 gram (supposedly) on coming out of China. If it has good resolution thag might be a viable choice for this (as an alternative to whatever the hardware is which they didn't say).
But what makes this stuff REALLY interesting to me are the possibilities for 3D widgets and interface elements and metaphors. That has been explored a little and generally discarded in flatland but I think in an environment that is always 3d with good hand tracking, it's a different ballgame.
One thing to imagine would be, what could 3d "web browsing" be like if you knew that everyone looking at your site was in VR? Maybe something along the lines of JanusXR. Although I think they barely began to scratch the surface.
To me the idea of working in VR could be a gateway to the 'metaverse'. It could start with people trying to make more interesting environments for their floating 2d windows. Then they add some physics and locomotion. Now they want to collaborate over the network.
In three years, the most popular Linux distribution could be the one you run on your headset, and could come with multiplayer VR baked in.
But anyway I would want to escape from the 2d windows. There might even be some interesting ways to represent code or codebases in 3d. Or even new ways to manipulate text with your hands.
But everyone should avoid PiMax like the plague. Their hardware is super buggy with lots of weird lens distortions and colored static in the displays. Their drivers are weirdly front and present like a HP does with their printer drivers, making me wonder just what they hell they think they are doing (and also, very buggy as well). Whatever resolution advantage they claim is wasted on bad image compression and extremely bad optics.
But the worst part of all is that the business side is really scammy. They'll gladly taking your money and sending you a shipping notification long before they ever have an actual headset they can send you. I get that manufacturing delays are a thing, but for PiMax they've always been a thing, long before the global pandemic and chip shortage. Don't tell me I'm going to get a headset "any day now, it's in the mail" for 3 months straight, only to finally get your act in gear when I threaten to reverse the credit card charge.
Of all the people I've talked to who have eventually gotten their PiMax headset, only one says he likes it, but he's also super DPRC-nationalistic and has accused people of racism anytime they talk bad about PiMax.
https://www.youtube.com/watch?v=NOk_M1Ib5F0
https://youtu.be/iDb0OjNG2is?t=736
https://youtu.be/e6djDSf0kxg?t=699
trough the lens recording:
Also pretty excited by John Carmack's recent tweets on sideloading stuff to the Quest. It feels like that would provide a much bigger opportunity for this project (cameras and all), than building/shipping new hardware.
Sideloading does work on the Quest. The Go work has been a more open OS.
Also, the Valve Index is pretty much last (tethered) gen.
https://portablesimula.github.io/github.io/doc/HiNC1-webvers...
Here's a video from a different company.
Sitting at a desk looking at a monitor in one position sounds terrible for your neck.
With VR you don't have physical (and cost) limitations of having screens above and below you, they could be all around you. You could even program the screen(s) to slowly rotate around you to induce motion so your neck/body isn't in the same place all day.
I agree on the cons: Wearing a headset all day? Also I wonder how looking at a light-bulb at 5cm of your eyes all day long will feel like.
OTOH for me one _advantage_ that these type of VR/AR technologies can bring is are "endless desktop space". Right now we have something like that with "multiple desktops" in Linux and OSX. But it will be cool to have just an endless space of screen real-estate to tile all open windows.
No headset in sight, other than just "any headset".
Maaayyyybe.
When I was interviewing for a programming language theory PhD program in... Bristol I think, back when this was purely software, I had probably a 20 min discussion on this because the prof thought it was related to the language.
I also wonder what could happen if the ciliary muscle isn't used enough. Does it get weak and you rapidly get short-sightedness, or is occasional exercise enough?
Edit: maybe an answer could come from looking at people who recovered from extended comas. Does their visual acuity degrade? If not, that's promising. If yes, it could also come from other causes like the light of light (lack of UV light, especially during teenage years, has also been linked to short-sightedness).
That seems weird to me because when I look at a screen at a different distance to the one I'm using I can see the other screens getting blurry just like in real life.
That said, it isn't any more or less strenuous on my eyes than IRL except when the text is too small. Font smoothing still isn't great, but if the screen is big enough you dont notice it.
"Perceived distance/depth" has little to do with "focal distance" in this situation.
And, if luminosity would allow, working outside with it would be a dream come true to me!
Behind all of this is my room's white wall with an area of around 4x2 meters. Imagine if I could change my monitor with an AR version of it that mapped/projected the "desktop" to my wall.
And then, let's say I want to get into a meeting with a colleague to do some diagrams, so we "map" some Whiteboard software into another wall in my room and a wall in my colleague's room. We will be looking at the same and could even "draw" with hand gestures or something.
I have more hope for AR than for VR as well.
I feel lucky to be born in times where we have technology and abundance but it didn't yet turn to a sci-fi dystopia created by tech nerds.
And even from a productivity perspective, a regular screen is enough if it's powered by a good window manager (i.e. i3wm). There's no reason to block the reality with a VR, unless you are living and working in a room with no windows, then maybe you can get yourself a nicer view and that's it.
So I plop on the couch with my laptop but the constraints of that setup quickly drain my energy. If I had a quality "multi monitor" setup that is ready any time, anywhere, my productivity would increase, even if the device/process itself isn't better than monitors + i3.
And if that happens, I'll have a happier time coding, probably produce more code, and live a happier life (because currently I am unhappy with my lack of output and that feeds back into my family life). That isn't some magical hope either, the same would happen if I had a multi monitor office again, but buying a single device is easier.
So don't despair, there will be plenty of good outcomes from stuff like this project.
Right now I'm using a 42in LG 4K TV as my monitor, and I've mostly gotten used to it. One thing is that since I'm older, it is nice to push the monitor further away from me than I had in the past, so the monitor itself is on a file cabinet (with an adjustable stand) not sitting on my desk itself.
TVs are not monitors, and it took a bit of fiddling with the TV settings (game console mode, turn off overscan) and drivers on the desktop side, but I'm fairly pleased with the setup these days. I really like having additional vertical space for editing windows.
Though with the power consumption required for a VR GPU display, you'll likely need a decent-sized battery pack (maybe on your belt), for this not to be tethered to a power outlet.
For this product space, I think I personally would be happier with a AR style solution, though that comes with its own challenges.
I've got to wonder if a CastAR / Tilt5 AR projection system would work better for working. You could certainly roll up the retro-reflective "screen" into your backpack.
One is that it needs to be comfortable enough to wear for long periods of time. I usually get quite warm when wearing one. You also often end up with impressions on your face. This is fine for gaming or shorter sessions but would be a distraction if trying to focus for longer periods of time.
It would also need to have a higher resolution than most (all?) current VR headsets. Text needs to be huge so even though you can have lots of virtual screens you can't fit much on each.
Finally, I imagine that there could be a more innovative interface than just screens in a virtual space. Something that embraces the close-to-physical-reality illusion of VR.
Regarding comfort: I have been curious whether you could take the weight off the head by suspending the headset off the back of a chair so it "floats" at face level via a tether or something.
I like the call in your last point, but personally I think an innovation like 360 degree resizable and movable windows is a reasonable step up from where we're currently at. It would be nice to integrate the work we do into physical space a bit more though. I've wondered about doing practical programming work in an infinifactory-type[2] interface. I don't think it's necessarily a good idea, but it'd be fun to see attempts at no-code tooling embedded in the space.
[1] https://news.ycombinator.com/item?id=28678041 [2] https://www.zachtronics.com/infinifactory/
Compiz desktop cubes [1] and native zooming were all the rage back then as well.
[1] https://heise.cloudimg.io/width/993/q75.png-lossy-75.webp-lo...
Given what I do to my posture as a desk worker, I'm thinking a little extra weight on my head might do good things for my back tbh.
If the price is right, I'm down to try it anyway.
That's a stretch! Or where to improve your pitch. Personally the only 10x productivity I get is by disconnecting from wifi.
I'd love to see the windows non-square, more like a POV or fisheye if that's possible. Cool product, I hope to use it soon.
Jokes aside I've tried a few virtual desktops in VR and it _seems_ promising. The text clarity is a hard one, the weight of the headset for prolonged sessions would also be difficult.
A whiteboard app that works with non-VR users w/o 3D would be nice. Something like Miro but with nice feel in VR.
Maybe if I needed to more stuff where I compared things side-by-side...
I saw a couple YC apps in there, so I'm sure they had to be ambitious, but thinking realistically there's a big difference between being:
1) A VR headset for work company
2) A VR operating system for work company
3) A window manager for VR for work company
[1] https://github.com/SimulaVR/Simula/wiki/Simula-Master-Plan
Speaking of, what’s a good VR headset that I can purchase in ‘21 that does not have anything to do with FB? I enjoyed playing Alyx on the Index so that’s my prime candidate for now, for both gaming and productivity.
Most of the recent Github commits are in the dev branch, but right now it's 90% George working on the code. I'm busy on the hardware and wrangling vendors side, our third employee is the ME so no coding there.
The Quest 2 is already pretty much as sharp as my eyes can resolve - and that's with prescription glasses.
Looks cool though!
Basically, any way I tried to slice the problem of "full VR system I can box up and send to people without having Facebook spy on them" came out to $1000/ea. We ultimately went with Oculus for Business to keep everything small and easy to setup.
From here: https://github.com/SimulaVR/Simula it seems like anything that will run steamvr should do it.
Depending on vendor support we might have to go to 2.5k displays from another vendor, but hopefully we can get the support we need for the 3k displays.
How's the lens glare?
Can you use Simula currently with Quest 2 air link or do you need to be tethered?
EDIT: So yeah, this is Linux only? There will not be a Windows version?
Lens glare, too early in the design to tell yet. I'll have more info in late Oct.
It's Linux only as Windows doesn't have the APIs for what we're doing (being a window manager, basically). No idea if WSL will work nowadays; definitely not without a lot of finagling.
The only two other examples of this going right now are Microsoft's Windows Mixed Reality platform with Windows Holographic and the Magic Leap One's interface. Windows MR works really well, Magic Leap is extremely half-baked and has had very little effort put into it (well, at least that was the case a year ago. I ended up selling my headset for lack of use).
Being that I've been a Windows developer for 20 years, it's extremely frustrating to me that Microsoft won't make a standalone VR headset. They have all the technical capability to do it. The HoloLens 2 is a sufficiently powerful compute platform and runs the full Windows MR experience. The PC-tethered Windows MR headsets are very high resolution and some of them are even quite comfortable (I regularly use a Samsung Oddyssey+ for work). But they seem hell-bent on pushing difractive waveguide displays for any mobile devices, which I think by now have pretty handily proven to be straight up garbage.
How a Linux headset could succeed here where others are really stagnating is to develop:
A) Hotswappable batteries. You're not going to get all-day usage out of a single battery pack anytime soon (my Quest 2 with the Elite Strap doubles the battery life to a whole TWO HOURS OMG!), and having to connect a wire to a device that is supposed to be standalone just for power is kind of like playing with one of those line-tethered model airplanes: what you really want is an RC model airplane, so you're just stuck being disappointed all the time.
B) A really good spatialized audio system. Spatialized audio is an often overlooked component of making a believable VR scene. All of the ambisonic audio drivers are platform-specific right now, and they each have their pros and cons. I really like Microsoft's HFRT as it seems more realistic than Oculus'. It'd be especially nice to have work put into Chromium and Firefox to upgrade the WebAudio system to use the system's spatializer rather than implement their own (Google's Resonance is particularly bad).
C) Really big emphasis on accelerated 2D rendering. 3D rendering is great for games, but work is all text and text is all 2D rendering. Some of the most costly components of my VR projects are the text rendering. You can go a long way with low-fi 3D as an aesthetic, but 2D absolutely needs to be crisp and tight. And it's not just about the resolution of the display. Your 2D buffers aren't going to ever map one-to-one to the display's pixels, because your head is moving around, you'll be looking at things at slight angles and in motion, etc., and most mipmapping algorithms are designed for gradients, not sharp edges. So making clear text is really hard. Oculus has a hack where 2D quads can be rendered in a separate pass from the rest of the 3D environment, but there are issues with it regarding scene compositing and hit testing.
D) A native scene graph, something akin to extending the desktop metaphor into 3-dimensions, not just for compositing 2D windows but for allowing 3D applications to mix and match objects. Windows MR and SteamVR are the only systems that really even attempt to do this, with neither really seeing enough emphasis. Every VR app right now runs in a completely exclusive, retained mode. That's fine for games, but it's completely unnecessary for things like teleconferencing apps. Why shouldn't you be able to "spaceshare" like we do screen-sharing? Then you'd be able to have your teleconferencing app separate from your whiteboard app.
- (A) is tractable, and will be placed on our queue.
- RE (B): Simula has developed a special text filter to help improve its text quality. See https://github.com/SimulaVR/Simula#text-quality for a demonstration. As you point out though, there are even deeper things that can be done. We have considered making a vector-based based terminal before (in which text is rendered on a vector basis).
- (D) is a point brought up by Forrest Reiling in his master's thesis on window managers (which influenced Simula's early founding). See [Toward General Purpose 3D User Interfaces: Extending Windowing Systems to Three Dimensions](https://github.com/evil0sheep/MastersThesis/blob/master/thes...).
I think his main concern was mostly dog-fooding the VR environment, not building back-door interfaces that the bots could use that the humans could not. I don't know if it really has to go that far, but there is a lot that needs to be done to define common interfaces between objects.
Whenever I do my own thinking on how such interfaces would be built, I always end up with something akin to Bluetooth GATT profiles, which is... less than ideal. There's certainly a lot to like about GATT, in that it has a lot of different functionality pre-defined. The dream of device and software interoperability is certainly there. But at the same time, vendors in the wild seem to just shove everything into the public use space and vertically integrate with their own stand alone apps, so maybe Lanier was right.
It probably needs to be something more akin to how AR systems attempt to understand their surrounding world. AR apps also run exclusively, but they do have to consider the huge design challenge of not owning the entire environment. Perhaps a model of AR that can't differentiate between the real world and the virtual world that includes other AR apps is the way to go.