Years ago, when I was adapting field manuals into Unity Games -- I got asked to create some training for a piece of field kit that relied heavily on a windows mobile device (very early windows mobile, that had a registry -- could run some win32 apps, had a noticeable delay of like 350ms between every input and it reacting...)
I had that new-job-gotta-impress energy, so went _hard_ at this project. I added so many tiny details to make it _exactly like the windows mobile device_. I had simulated battery indicators, signal that was calculated by ray-crawling to the nearest in game "tower" and attenuating based on the materials it encountered along the way (why?!) -- every menu, function, submenu that I had access to I implemented. The power button worked, the restart button would do the windows mobile boot animation. No stone unturned.
When I finished it, I assume 6 people saw it, but they never said anything to me about it. That was probably my first adulthood jolt of ennui. Ah memories.
I worked for the same field-manual-into-Unity employer for a few years, first doing DoDAF architectures on a contract on Ft Huachuca, switching to the serious games division for a small number of weeks before I politely quit in frustration.
We spent years building what amounted to UML diagrams of existing Army units. Great effort went into them. Coordination with active-duty officers, with GS civilian stakeholders, training from certified DoDAF-training instructors; we had TS-SCI clearances.
Then the resulting products went into a database somewhere, and nobody ever looked at them.
I imagine that sort of thing is rife in the government contracting world, but it seems like that particular firm has a real knack for finding truly futile things to get paid for.
The hard drives were configurable (up to 4MB hard drive images supported) and as per the pic above, the light on the drives light up when accessing the disk.
I wanted to make something a bit between a cross between FTL and 0x10C, but in 3D, and where your space controls were linked up to software running on the Z80. I had up to four Z80 instances running (could have supported more), and wanted to be able to network them to each other as well as the spaceship control plane as well.
OK, this is actually quite impressive. Geeky beyond belief, and the question is how deep would you care to go ... emulating a x86 which is running your app emulating an x86 ... Still impressed.
Okay, what was this used in, and where/how can we play with it? Preferably in test/debug mode so we can directly poke at the different features. (But source not necessary.)
Also - the ANSI graphics example... it honestly looks bitmapped, not like a bunch of colored character cells. But then the graphics example (link 2) also looks bitmapped, so I think I'm missing something.
That's dope. I'm sure the original post in this thread was a solid learning experience for its creator but unlike what you just showed, it doesn't do anything particularly novel or clever. You should write up a blog post and submit to HN!
Looks like a generic Linux distro. Am I the only one getting "visual fatigue" over seeing flat design? I just feel like we need a trend change. Its been way too long. I find myself looking at the old Windows Vista, Windows XP, early Mac OS X, or even Windows 3.1 designs and longing for that simplicity.
This is a remake of Project Glass, which is a simulated operating system UI, this time implemented in Unity. It's not a full OS, but every simulated app and widget inside is fully functional.
There is currently only a Windows demo [1] available, and he's undecided whether he'll release on Github or not.
In the 1970s and 1980s, GUIs devoted a large portion of the machine's power (and other resources such as memory and disk space) to improving usability. This reduced raw application performance and power efficiency but it was considered a worthwhile tradeoff.
For years we've been optimizing battery life, but now that mobile devices can run for 8-10 hours or more on a single charge, perhaps we should reconsider spending more of the power budget (and implementation effort) on usability.
On a side note, it baffles me that devices like the PS4 that are amazingly responsive during gameplay have extremely clunky and unresponsive system GUIs. Can't we get some smart game programmers to rewrite the PS4 system GUI to make it fast and responsive?
reddit's modern userbase is really interesting. There are some incredibly interesting people who use it, but you also find a bunch of accounts that are under a year old with lines like this:
Please don't. I would like to see you get rewarded for your hard work. Screw the parasites.
Their new UI seems to be doing its job, but I wonder if the decline in thread quality was worth it.
> reddit's modern userbase is really interesting. ... you also find a bunch of accounts that are under a year old with lines like this:
You should visit /r/cscareerquestions and sort by New some time. Many of the younger posters have some wild expectations about CS careers, compensation, and the workplace.
90% of the young people I interview, hire, and work with are wonderful these days. However, a small minority arrive with unchecked entitlement and bizarre expectations, and I think sites like Reddit and Twitter are to blame.
I think there's a small subset of people who grew up watching that "Fuck you, pay me" video on YouTube, combined with a hot job market and an economy that hasn't seen a recession in their adult years. Combine that with stories of Google engineers making $200K+, and you end up with a small minority of developers with an extreme sense of entitlement.
I've seen developers try to invoice companies for time spent in on-site interviews, junior developers who couldn't pass basic FizzBuzz-level coding challenges demanding $250K compensation, and a surprising number of /r/cscareerquestions threads justifying "ghosting" your employer. Not to mention the meltdowns that happen when people get put on performance improvement programs. And of course, the never ending comments encouraging people to sue their employers for trivial things.
Reddit has some gems, but it's a breeding ground for keyboard warriors. Upvotes tend to follow what people want to hear rather than the best advice. It's easy to be an internet tough guy, but a lot of that grumpiness and entitlement breaks down when they meet the real world.
That kind of drive-by low-content posting is the inevitable result of lax and/overwhelmed moderation combined with a massive userbase and ultra-ephemeral posting. It's possible to suppress it, but it takes either a community small enough to have some organic buy-in of posting standards (see HN, for example), aggressive moderation, or both.
I made another comment about this: this opinion is actually commonly held, and especially vocal, in the «hobby» game dev community. I have encountered similar hostility towards open source and sharing many times, e.g. on Unreal Engine forums, it is not a reddit thing.
The animations are just amazing. It's the exact field in which I still find modern applications lacking, but games exceptionally good (including game UI).
I think UI frameworks should take more from game engines, which I think has happened over the last 2 decades, albeit slowly. My best examples of it is probably currently QtQuick, which builds completely on OpenGL and uses a bunch of game engine terminology in its documentation - but I have also found that it's possible and not too hard to make working application mockups using Godot.
Looks really cool! Unfortunately it looks like there is only a Windows version available to play around with.
If this could run on Linux and have support for running arbitrary x11 apps then it would be very interesting! I don't have a lot of personal knowledge about Unity3d, but I do hope the creator puts this up on github or something. I'd love to take a closer look.
I am not sure if there is prior art for X11 proper, but there is at least one Wayland compositor built on top of the Godot engine that can run X programs through XWayland: https://github.com/SimulaVR/Simula
And yes, with a bit of hacking you can do silly things like put physics on the windows and shoot holes in them. It won't get you close to what is in that Unity demo though. That would require re-designing all the apps. In my experience it's a massive pain in the ass to get eye-candy like that working correctly for arbitrary UIs and it's not worth the effort for most apps.
It's probably not hard to get it running on Linux but it's not a shell. It's just a toy with built in 'apps.'. Running arbitrary apps rendered to a texture in this app and forwarding user input back to apps is probably out of scope.
As someone who has never used Unity, knowing it can be used for cross platform development, I would like to know how difficult it is to target as many platforms as possible. Let’s say I made a pretty standard 2D indie platformer. Not particularly graphically intensive. Is it possible to just check the box for each platform you would like and it works pretty well, or is there a lot of conversion work?
I tried making the original Macintosh OS in Godot and my takeaway was it was really enjoyable to make UIs in a game engine. It would be interesting to see some “avant-garde” movement of making not only games but native apps using game engines.
There is a reason that UIs don't look like this. The transparency alone is a major issue for usability, accessibility, and productivity.
It's an interesting project. I wish this person would have pushed themselves to think of new paradigms, rather than trying to use more effects to very staid looking interaction design concepts.
I'm sure there are plenty of usability issues but damn it looks slick.
It's sad that a kid can make this with Unity3D, probably on his/her free time, and Microsoft with all its billions is not capable of producing a good UI for Windows.
I'm not sure if you realize, but this isn't intended as a "real OS" for practical use.
It's intended for use inside of computer games; whether for simulation of using computers inside the game-world, or for games where the framing device is a (simulated) desktop interface.
In which case, the "limited real world use" is hardly a flaw!
1. This is more of a design study that anything else, having unity provide your os shell is ridiculous.
2. You shouldn't consider your own needs the standard. I for myself would be very happy with
- A music player that doesn't integrate with user hostile, walled garden drm garbage
- Ditto for messaging
- Just using your own file sync for documents and pictures
Also, well, notes without filesystem access feels really useless, we can agree on that one.
It's a nice looking display, and it's running at a nice 60FPS. However, operating systems don't generally run in full GPU mode all the time -- it's a huge amount of power to be re-drawing the screen that often, and that scales to poor battery life on mobile and expensive power costs in servers.
So that's one of many reasons practical OSes don't do their UIs with GPU shaders when they can otherwise get away with less.
Your phrasing of this is a bit unclear. I think you mean that no "real" UI redraws when nothing has changed.
But otherwise most operating systems do run in full GPU mode all the time. The true-mobile ones, so iOS & Android, are almost always using dedicated hardware to handle composition without spinning up the GPU (although both use the GPU to render, so whenever something does change it's immediately back on the GPU), but "desktop" ones are generally always doing GPU composition as long as the display is on. With some hand-wavy exceptions to that primarily for video layers in select circumstances with proper hardware support.
This is not true. OS's generally blit their entire UI with GPU shaders, for power efficiency as much as for performance. This may be mixed with scanout compositing, depending on the system.
- Redrawing the entire screen on every frame is indeed disastrous
- Redrawing entire application windows every time something gets moved around a bit and something gets a paint event is also higher load than necessary
- Drawing things that won't change every frame into textures (not shaders), and then compositing those textures together on every frame, is by far the most efficient approach today, on all platforms
I am genuinely interested to hear the definition of "less" that you refer to. It's possible some piece of assumed context is being lost in translation.
I remember working on a Visual Basic "OS" back in 2005 with something similar in mind. I don't remember going further than implementing a basic desktop and a calculator. Fun times.
[+] [-] MrLeap|6 years ago|reply
I had that new-job-gotta-impress energy, so went _hard_ at this project. I added so many tiny details to make it _exactly like the windows mobile device_. I had simulated battery indicators, signal that was calculated by ray-crawling to the nearest in game "tower" and attenuating based on the materials it encountered along the way (why?!) -- every menu, function, submenu that I had access to I implemented. The power button worked, the restart button would do the windows mobile boot animation. No stone unturned.
When I finished it, I assume 6 people saw it, but they never said anything to me about it. That was probably my first adulthood jolt of ennui. Ah memories.
[+] [-] presidentender|6 years ago|reply
We spent years building what amounted to UML diagrams of existing Army units. Great effort went into them. Coordination with active-duty officers, with GS civilian stakeholders, training from certified DoDAF-training instructors; we had TS-SCI clearances.
Then the resulting products went into a database somewhere, and nobody ever looked at them.
I imagine that sort of thing is rife in the government contracting world, but it seems like that particular firm has a real knack for finding truly futile things to get paid for.
[+] [-] easton_s|6 years ago|reply
[+] [-] nineteen999|6 years ago|reply
https://i.imgur.com/2nagJS4.png
I did implement graphics hardware as well, so in theory you could write a GUI along the lines of Contiki or something
https://i.imgur.com/DmnVA2I.png
The hard drives were configurable (up to 4MB hard drive images supported) and as per the pic above, the light on the drives light up when accessing the disk.
ANSI/VT100 support on the terminal as well:
https://i.imgur.com/DlftREp.png
Telnet+ZMODEM client was working so you could download software directly from Internet connected BBS's:
https://i.imgur.com/K44GT1W.png
Or do word processing in space with WordStar 4:
https://i.imgur.com/rIY1he8.png
I wanted to make something a bit between a cross between FTL and 0x10C, but in 3D, and where your space controls were linked up to software running on the Z80. I had up to four Z80 instances running (could have supported more), and wanted to be able to network them to each other as well as the spaceship control plane as well.
[+] [-] smallstepforman|6 years ago|reply
[+] [-] exikyut|6 years ago|reply
Also - the ANSI graphics example... it honestly looks bitmapped, not like a bunch of colored character cells. But then the graphics example (link 2) also looks bitmapped, so I think I'm missing something.
[+] [-] potta_coffee|6 years ago|reply
[+] [-] GuiA|6 years ago|reply
[+] [-] Answerawake|6 years ago|reply
[+] [-] kstenerud|6 years ago|reply
This is a remake of Project Glass, which is a simulated operating system UI, this time implemented in Unity. It's not a full OS, but every simulated app and widget inside is fully functional.
There is currently only a Windows demo [1] available, and he's undecided whether he'll release on Github or not.
[1] https://drive.google.com/file/d/1p3AACMd6KuRnHctsq42uJfMq3Bw...
[+] [-] musicale|6 years ago|reply
For years we've been optimizing battery life, but now that mobile devices can run for 8-10 hours or more on a single charge, perhaps we should reconsider spending more of the power budget (and implementation effort) on usability.
On a side note, it baffles me that devices like the PS4 that are amazingly responsive during gameplay have extremely clunky and unresponsive system GUIs. Can't we get some smart game programmers to rewrite the PS4 system GUI to make it fast and responsive?
[+] [-] kick|6 years ago|reply
Please don't. I would like to see you get rewarded for your hard work. Screw the parasites.
Their new UI seems to be doing its job, but I wonder if the decline in thread quality was worth it.
[+] [-] PragmaticPulp|6 years ago|reply
You should visit /r/cscareerquestions and sort by New some time. Many of the younger posters have some wild expectations about CS careers, compensation, and the workplace.
90% of the young people I interview, hire, and work with are wonderful these days. However, a small minority arrive with unchecked entitlement and bizarre expectations, and I think sites like Reddit and Twitter are to blame.
I think there's a small subset of people who grew up watching that "Fuck you, pay me" video on YouTube, combined with a hot job market and an economy that hasn't seen a recession in their adult years. Combine that with stories of Google engineers making $200K+, and you end up with a small minority of developers with an extreme sense of entitlement.
I've seen developers try to invoice companies for time spent in on-site interviews, junior developers who couldn't pass basic FizzBuzz-level coding challenges demanding $250K compensation, and a surprising number of /r/cscareerquestions threads justifying "ghosting" your employer. Not to mention the meltdowns that happen when people get put on performance improvement programs. And of course, the never ending comments encouraging people to sue their employers for trivial things.
Reddit has some gems, but it's a breeding ground for keyboard warriors. Upvotes tend to follow what people want to hear rather than the best advice. It's easy to be an internet tough guy, but a lot of that grumpiness and entitlement breaks down when they meet the real world.
[+] [-] crooked-v|6 years ago|reply
[+] [-] kody|6 years ago|reply
[+] [-] erikbye|6 years ago|reply
[+] [-] vzttzv2|6 years ago|reply
[+] [-] stareatgoats|6 years ago|reply
[+] [-] that_jojo|6 years ago|reply
[+] [-] silentwanderer|6 years ago|reply
[+] [-] solarkraft|6 years ago|reply
I think UI frameworks should take more from game engines, which I think has happened over the last 2 decades, albeit slowly. My best examples of it is probably currently QtQuick, which builds completely on OpenGL and uses a bunch of game engine terminology in its documentation - but I have also found that it's possible and not too hard to make working application mockups using Godot.
[+] [-] ktm5j|6 years ago|reply
If this could run on Linux and have support for running arbitrary x11 apps then it would be very interesting! I don't have a lot of personal knowledge about Unity3d, but I do hope the creator puts this up on github or something. I'd love to take a closer look.
[+] [-] cycloptic|6 years ago|reply
And yes, with a bit of hacking you can do silly things like put physics on the windows and shoot holes in them. It won't get you close to what is in that Unity demo though. That would require re-designing all the apps. In my experience it's a massive pain in the ass to get eye-candy like that working correctly for arbitrary UIs and it's not worth the effort for most apps.
[+] [-] jayd16|6 years ago|reply
[+] [-] Pulcinella|6 years ago|reply
[+] [-] unknown|6 years ago|reply
[deleted]
[+] [-] nhatbui|6 years ago|reply
[+] [-] pwthornton|6 years ago|reply
There is a reason that UIs don't look like this. The transparency alone is a major issue for usability, accessibility, and productivity.
It's an interesting project. I wish this person would have pushed themselves to think of new paradigms, rather than trying to use more effects to very staid looking interaction design concepts.
[+] [-] gkfasdfasdf|6 years ago|reply
Looks pretty slick though.
[+] [-] pier25|6 years ago|reply
It's sad that a kid can make this with Unity3D, probably on his/her free time, and Microsoft with all its billions is not capable of producing a good UI for Windows.
[+] [-] jdance|6 years ago|reply
- Music player without connection to the real world (spotify/youtube)
- Notes app without connection to the real world (the file system/other platforms)
- Messages app without connection to the real world (sms / messenger / whatsapp / etc etc)
- Photos app without connection to the real world (some kind of cloud synced file system)
- Notifications ... I really still have not found a use for them, except for IM on my phone
Stop bundling these things :( It looks nice, but the real world use is so limited. Focus on really enabling other stuff instead
[+] [-] MrEldritch|6 years ago|reply
It's intended for use inside of computer games; whether for simulation of using computers inside the game-world, or for games where the framing device is a (simulated) desktop interface.
In which case, the "limited real world use" is hardly a flaw!
[+] [-] f1refly|6 years ago|reply
Also, well, notes without filesystem access feels really useless, we can agree on that one.
[+] [-] mbf1|6 years ago|reply
So that's one of many reasons practical OSes don't do their UIs with GPU shaders when they can otherwise get away with less.
[+] [-] kllrnohj|6 years ago|reply
But otherwise most operating systems do run in full GPU mode all the time. The true-mobile ones, so iOS & Android, are almost always using dedicated hardware to handle composition without spinning up the GPU (although both use the GPU to render, so whenever something does change it's immediately back on the GPU), but "desktop" ones are generally always doing GPU composition as long as the display is on. With some hand-wavy exceptions to that primarily for video layers in select circumstances with proper hardware support.
[+] [-] pcwalton|6 years ago|reply
[+] [-] FraKtus|6 years ago|reply
Here is something I am coding with Dear ImGui:
https://www.youtube.com/watch?v=vbZsE7ACXrw
Even on an old MacBook, it keeps running at 60 FPS.
[+] [-] exikyut|6 years ago|reply
- Redrawing entire application windows every time something gets moved around a bit and something gets a paint event is also higher load than necessary
- Drawing things that won't change every frame into textures (not shaders), and then compositing those textures together on every frame, is by far the most efficient approach today, on all platforms
I am genuinely interested to hear the definition of "less" that you refer to. It's possible some piece of assumed context is being lost in translation.
[+] [-] designcode|6 years ago|reply
[+] [-] traverseda|6 years ago|reply
[+] [-] scarejunba|6 years ago|reply
[+] [-] Geee|6 years ago|reply
[+] [-] RabbiPires|6 years ago|reply
[+] [-] leowoo91|6 years ago|reply
[+] [-] dmos62|6 years ago|reply