Quake on an oscilloscope
lofibucket.com
lofibucket.com
The first generation computer graphics languages were vector-oriented to support either oscilloscopes or pen-plotters.
My first color frame buffer terminal was 512 x 512 x 8bits $30K AED in 1980. I think this costs than a dollar on a low-end cellphone now.
I would imagine whatever took a "sheet of paper" sized development board with dedicated hardware DACs and eproms around 1990 could be done as a single chip solution today, assuming you can find a single chip solution that actually has two on board DACs. Or up the challenge by synthesizing PWM signals and low pass filtering them, essentially a class D amplifier controlled by software.
Surprisingly or not, PWM circuits (a counter and binary comparator) are more common than DACs on today's microcontrollers. I blew up some somewhat expensive tweeters finding out that just because you can't hear the 31.275kHz PWM carrier doesn't mean the amplifier isn't amplifying it.
My project for the demo day in 68hc11 class was the 68hc11 was a weirdo among microcontrollers for having an external memory bus, so I slapped a 32k sram onto it making it a 32K MC and made what amounts to a drum sampler, press this button to record a couple seconds off the onboard A/D and press this button to play it back using an offboard DAC. Now a days of course microcontrollers rarely expose their memory bus and you'd just buy a COTS MC with more memory on the chip. We only had one day to prep for demo day and asking the Z80 kids to do DACs, and a vector algo, and trig all in one day might have been asking too much.
Its been awhile, but I think the demo day theme was we all had to use at least one off chip DAC.
The product was the Vidstar-2000 from Video Data Systems in 1984.
I used to be mesmerized by it..everything looked so clean and modern, much better then the crappy 80x25 "workstation" displays of the VAX's and PDP-11's.
What I remembered was this device... https://en.wikipedia.org/wiki/Tektronix_4010
The 4014 had a series of commands for drawing both text and graphics
I was at the Florida Institute of Technology in 1985, and Lamport had just published the LaTex language and their was some interest in the department in getting a version of it running the the 4014...
I think someone hacked a version of it...but my aging memory fails me.
Anyways, what you are referring to is in between vector and rasterized displays. Still very interesting. I should ask my dad about this (he worked for Textronix in the 70s).
That effect actually looks amazing. I'd totally play a game with that aesthetic.
You might be able to make it work with clever usage of geometry or tesselation shaders though, and maybe also transform feedback.
Honestly though, since the effect necessitates simple, low-poly geometry, doing the effect on the CPU shouldn't be too unreasonable, and would be where I would start.
EDIT: Actually, now that I look closer, the one on the right here[0] could be done more reasonably in a shader, I was thinking closer to the one on the left (and how it actually looks in the video).
[0]: hhttp://www.lofibucket.com/articles/img/speed_comparison.jpg
wow that looks and sounds amazing.
The games that ran on it were really interesting.
Many modern games use the now high-resolution of raster displays to imitate Vectrex-style graphics.
http://www.binaryzoo.com/games/echoesplus/echoesplus_4.png
Note that the corners between straight lines are brighter, it is because on Vectrex the way to control line brightness was to draw it over itself, also line crossings were brighter too.
Important to mention that many vector displays could NOT make curved lines though.
Vector graphics were some of my favorite, even growing up during the NES/Sega era.
http://www.i-mockery.com/minimocks/50arcadecabinets/star-war...
http://www.gamasutra.com/view/feature/3117/a_history_of_gami...
"After product rights reverted back to Smith Engineering, an attempt was made in the late 1980s to resurrect the Vectrex as a handheld. Unfortunately, the pending introduction of Nintendo's GameBoy in 1989 put a practical stop to such plans once and for all.
In the mid-1990s, Jay Smith generously placed the entire Vectrex product line into the public domain, opening up legal, not-for-profit distribution."
Consequently, it's well supported by emulators.
https://www.youtube.com/watch?v=ijc6afTifqI
We had one when I was growing up as a kid. It was a pretty cool little machine.
How nice to be wrong! Hats off on this one. Nice hack indeed.
I've got an old hobbyist oscilloscope, it was my former boss and mentor's first scope. I really should hack up something with it along with some of these low cost cpu boards.
I can only try to imagine how it would look on a oscilloscope with more MHz and a better soundcard.
Sure, you could convert information encoding 3d space around a user and convey it to them in any number of methods, but that wouldn't leverage the brains very specialized mechanism for processing and interpreting visual information(which I rightly or wrongly conceptualize as a mix of hardware(some analogue of a video coprocessor for the brain) and software(the algorithms the brain uses to interpret the data).
Perhaps if you are defining "3d" information as something very primitive to the point of being "is there something directly in front of me", but nothing even as close as rich as even the quite crude 3d information being conveyed on the hacked oscilloscope outlined by the OP.
I do see technology eventually giving blind people some sort of "sight" back, but not for quite some time, perhaps after there is some sort of workable neural interface that currently lives solely in sci-fi.
Is there a reason for it? What kind of circuit design in the DAC could cause low frequencies/significant distortion to require a high-pass at these frequency ranges?
Genuine curiosity here.
You truly can play quake anywhere. I always liked ttyquake, which replaced the renderer with an ascii-art output. Actually quite playable if you set your font size small enough and your xterm large enough...
I wonder if it could be emulated with a shader...
http://en.wikipedia.org/wiki/Eulerian_path#Hierholzer.27s_al... algorithm adding invisible edges to the next closest visible edge if you get stuck.
One could get higher bandwidth by using the three color channels of an analog VGA output to control X, Y, and intensity.
You can display lines on the oscilloscope screen by giving a specially generated two channel audio as its input; one channel works as the X co-ordinate and the other one as the Y co-ordinate.
The game (Darkplaces which is a source port of Quake) renders a scene that has the lines to be drawn (triangles, in fact) on screen. The output of the game, i.e., the lines to be drawn on screen are sent to an audio synthesizer process(PortAudio). This process uses a sound card to create the audio. The output of the sound card is connected to the inputs of the oscilloscope which draws the lines on its screen.
So it's not the sound in the game that is producing the actual image. The output of the game is converted to an audio signal which when given as input to the oscilloscope creates the actual image.
(I tried to post it myself after seeing it on facebook in a swedish/scandinavian group.)