Ontwikkelaar laat Quake draaien op een oscilloscoop

Een ontwikkelaar is er in geslaagd om Quake werkend te krijgen op een oscilloscoop, een apparaatje waarmee normaal gesproken variaties in voltages worden gemeten. De maker heeft een demonstratievideo vrijgegeven.

Op zijn website legt de Fin Pekka Väänänen uit hoe hij Quake heeft geïnstalleerd op de oscilloscoop. Eerst schreef hij een simulator in Processing die kan draaien op het meetapparaatje: daarmee worden de benodigde lijnen op het beeld gerenderd. De benodigde code is vrijgegeven onder een opensourcelicentie en kan van Github worden gedownload. Daarnaast waren er nog verscheidene handelingen nodig om de objecten uit Quake om te zetten naar lijnen op de oscilloscoop, die Väänänen beschrijft op zijn website.

In een demonstratievideo laat Väänänen zien hoe Quake gespeeld kan worden op de oscilloscoop. De video laat zien dat het spel, voor zover mogelijk, goed werkt op het apparaatje. Wel is de maker ontevreden over de prestaties: er zouden slechts 1000 lijnen tegelijkertijd worden getoond. Sneller laten tekenen van lijnen zou de kwaliteit niet ten goede komen, aldus Väänänen. Het gebruikte model is een Hitachi V-422.

Väänänen heeft verscheidene andere hobbyprojecten op zijn naam staan. Zo maakte hij al eens een robot van lego die kan drummen op basis van een melodie. Ook kan de robot een beetje improviseren.

Helaas!
De video die je probeert te bekijken is niet langer beschikbaar op Tweakers.net.

Door RoD

Forum Admin Mobile & FP PowerMod

30-12-2014 • 09:25

56

Submitter: Trancicted

Reacties (56)

56
54
43
6
2
3
Wijzig sortering
Anoniem: 112442 30 december 2014 09:42
De tittel is erg misleidend, van zowel Tweakers als het originele verhaal.

Het betreft een analoge oscilloscoop die via x en y als monitor gebruikt wordt. Dat is op zich niet zo spannend.
Wat het leuke/speciale is dat hij x en y aanstuurt via de audio uitgang. En i.p.v. pixels gebruikt hij patronen/lijnen.

Dat maakt het speciaal, en extra moeilijk.

Ik dacht toen ik de tittel zag dat het een digitale oscilloscoop gebruikt was waarbij op de firmware quake geïnstalleerd was, omdat er toevallig een ARM SOC of zo er in zat. Dat is niet het geval.

Hij had de scope ook via x,y en z kunnen aansturen dan was het een monochrome monitor geweest wat helemaal niet speciaal zou zijn.

Maar dit is leuk, petje af.
Ik dacht ook eerst iets in die richting. Ook is een analoge oscilloscoop via een audio uitgang aansturen al vaak gebeurd. Het enige nieuwe is dat het voor quake gebeurt en dat hij ervoor de quake source heeft moeten aanpassen (dacht eerst dat hij een soort edge detection deed op het beeld van de pc, maar op 00:30 zie je dat hij de outlines van de objecten rendered).
Er zijn ook digitale scopes waar gewoon een x86 processor in zit met volledige windows versie, daar Quake op draaien is niet zo'n uitdaging.

Dit is een hardstikke gaaf project, maar de titel is zeker misleidend. Quake draait NIET op een scope hier, de scope wordt als monitor gebruikt. Waarbij de geluidskaart wordt gebruikt om de 'monitor' aan te sturen. Hardstikke leuk natuurlijk, en petje af dat hij dat op zijn PC heeft geprogrammeerd, maar het is niet dat het op de scope zelf draait.
En i.p.v. pixels gebruikt hij patronen/lijnen.

Van wat ik zag is dat het wireframe wat gerenderd wordt. Wireframe zijn polygonen en dus lijnen. Als het pixels waren zou het moeilijker zijn.

Wat enorm gaaf dit. Samen met het geluid erbij erg tof. Het deed mij meteen denken aan de films van vroeger waar ze computer generated images lieten zien zoals bij Aliens of de serie Johnny Quest en bij Escape from films en bij spellen zoals System Shock als je de digitale wereld in ging.
http://cdn.artofthetitle....fny_glider_nose_views.jpg
Ik dacht bij het lezen van de titel ook niet direct hier aan :)
Hier op kantoor hebben we zelfs scopes die windows xp draaien, quake daarop draaien is een kwestie van installeren :)
Mooi man! Als dit hele signaal over een 96kHz sampled audio signaal gaat ben ik wel ontzettend benieuwd wat het effect van compressie is. Dan kan je een simpel video beeld streamen met 128kbit per seconde bijvoorbeeld! ;)
Oscilloscope graphics worden wel meer gemaakt met geluidskaarten, waarbij de stereo kanalen worden gebruikt voor een X en Y cursor. De scope gebruik je dan als "ouderwetse beeldbuis". Bvb is audiokanaal links je X positie en audiokanaal rechts je Y positie. Geef je geen output staat er een felle stip in het midden, maar met de PC software kan je lijnen op het scherm tekenen.

Je hebt dus geen vast pixel raster dat wordt afgescand, maar je zal van punt naar punt moeten sweepen (vector based). Controle van je lichtintensiteit heb je in feite ook niet, tenzij je de luxe hebt om trager van A naar B te sweepen, immers zal die lijn dan feller getekend zijn. (Maar afhankelijk van andere lijnen op het scherm zal daar geen tijd voor zijn).

Zoek maar eens naar Youscope. Er zijn nog wel mee van die "audiofiles" die je op een scoop kan aansluiten en een kleine graphics demo krijgt. Maar die zijn natuurlijk niet interactief

[Reactie gewijzigd door Hans1990 op 24 juli 2024 15:10]

Aah dat is de uitleg die ik in het artikel miste. Ik ben zelf nooit verder gekomen met scopes dan x als tijdas is en daarom snapte ik ook niet echt waar we naar keken. Cool.

Ik dacht gelijk, dan kun je de vector renderer van MAME ook wel 'eenvoudig' patchen, en dat blijkt dus al gedaan te zijn: http://gizmodo.com/331078...running-on-a-oscilloscope
Controle van je lichtintensiteit heb je in feite ook niet, tenzij je de luxe hebt om trager van A naar B te sweepen, immers zal die lijn dan feller getekend zijn.
De meeste oscilloscoops hebben ook nog een Z ingang. Dat is ook nodig want als je bijvoorbeeld een sinus vorm schrijft van links naar rechts, dan moet je de electronen straal aan het eind ook weer terug sturen naar het begin. En je wil niet dat dat een lelijke streep geeft.

Met het Z signaal kun je de straal onderdrukken. In principe is door aan uit maar misschien is daar mee te spelen doordat die Z ingang misschien ook analoog is of door modulatie op de Z ingang.

Alleen moet je dan wel en derde kanaal regelen naast links en rechts...
Het zijn enkel lijnen die worden weergegeven, je kan dus niet echt video's op deze manier streamen omdat je niet een volledig raster aan pixel kan opslaan op deze manier.
Wat ongelooflijk stoer.. en heerlijk nutteloos.. :-).. en dan nog klagen over de prestaties.. :-)..

What's next.... GTA op een Strijkbout?
Was ook mijn eerste gedacht, wat grappig maar totaal nutteloos. Wel leuke bezigheid voor een druilerige zondag...
Vraag me af wat de diepere gedachtegang is achter dit project...
Van helemaal niets doen leer je niks, je moet iets doen om te leren.
Hij weet nu hoe een oscilloscoop van binnen werkt, terwijl 99,999% het alleen maar gebruikt om de spanningsvorm te meten.
Alleen draait Quake hier helemaal niet op de oscilloscoop. Daar heeft deze scoop de mogelijkheden niet voor. Die V-422 is zo analoog als het maar zijn kan, het lijkt erop dat Bauke alvast aan het oefenen is geslagen met de champagne tijdens het schrijven van bovenstaande artikel :)

In Processing heeft Väänänen een oscilloscoop simulator gebouwd (die gewoon op zijn laptop draait) zodat hij wat makkelijker kon testen, Processing wordt dus niet gebruikt in de video die bij het artikel staat. Verder heeft hij een Quake renderer gehackt om daar de scene geometry uit te halen, die wordt daarna flink vereenvoudigd en naar een ander proces gestuurd dat de geometrie omzet in een audio-stream. Wat je op de scope ziet is die audio-stream (i.e. de variaties in voltage op de (stereo) line-out van zijn geluidskaart).

De scope wordt dus puur en alleen als 'beeldscherm' gebruikt. Nog steeds een erg leuk hobby-project :) Heel andere koek dan het aansturen van een normale CRT of LCD scherm.

[Reactie gewijzigd door bartvb op 24 juli 2024 15:10]

De scope wordt dus puur en alleen als 'beeldscherm' gebruikt. Nog steeds een erg leuk hobby-project :) Heel andere koek dan het aansturen van een normale CRT of LCD scherm.
Dat valt nogal mee, een scoop is in wezen weinig verschillend met een crt. Enkel de aansturing verschilt natuurlijk.

Een scoop heeft dikwijls een x en y ingang (x kan ook een intern signaal zijn) waar je dus met analoge coördinaten het punt op het scherm zet.

Een crt/lcd (ik heb enkel ervaring met vga) gaat elke pixel scannen waar je ook de timing van de horizontale en verticale sync signalen goed op orde moet hebben.

Ik heb met een school project wel eens een crt op vga aangestuurd (met een FPGA) en ik moet zeggen dat zeker voor simpele zaken (enkele lijnen) een oscilloscoop een stuk makkelijker is.

Natuurlijk is dit niet 'wat simpele lijnen tekenen' maar ik weet niet of een oscilloscoop controller moeilijker is dan een controller voor een vga scherm.
Fysisch heb je gelijk :j Het zijn beide apparaten met een CRT (Cathode Ray Tube) en met fosfor die oplicht. Maar bij een computerbeeldscherm zit er een heel circuit tussen dat het inkomende signaal omzet naar bewegingen van de ray. De input voor een beeldscherm is een stroom pixels, dat is dus hoe je vrijwel altijd werkt in de computerwereld als het over graphics gaat. Je bouwt een geometrisch model en daar maak je uiteindelijk een raster van.

In dit geval met de oscilloscoop wordt het rasteren overgeslagen omdat je direct lijnen uit een oscilloscoop kan toveren. Je stuurt dus geen stroom pixels naar de scoop maar beschrijft vooral lijnen.

Overigens zou je, in theorie, hetzelfde kunnen doen met een beeldscherm als je daarbij een deel van de electronica buitenspel zet. Ook bij een beeldscherm kan je de ray willekeurig laten bewegen. Dan krijg je hetzelfde idee als hier met de scope en eventueel zelfs in kleur :) Moet te doen zijn met een geluidskaart met minimaal 3 stereo uitgangen. Iemand die nog wat dagen over heeft in de kerstvakantie? :)
Dat laatste, over hetzelfde doen met scoop / beeldscherm, klopt niet helemaal.

Een oscilloscoop gebruikt elektrostatisch deflectie en is zo geconstrueerd dat die zowel horizontaal als verticaal snel de straal kan laten bewegen.

Een klassieke monitor (met CRT) gebruikt elektromagnetische deflectie, en de spoelen zijn standaard zo gedimensioneerd dat je verticaal slechts traag kan bewegen (vert freq 50 Hz), maar horizontaal wel snel kan bewegen (ca 16 kHz).

Een oscilloscoop is een beter gaming-platform :)
En zo is de Vectrex game console herboren :)
Simpel: Omdat het (blijkbaar dus) kan!

Juist voor Tweakers hoeft het niet altijd zo te zijn dat er een diepere gedachte achter zit. Gewoon iemand met een idee die in zijn vrije tijd wil kijken of het lukt. Helemaal te gek toch?
Omdat het kan, natuurlijk!
Inderdaad erg stoer! Maar zal eerder Carmageddon zijn op de boordcomputer van een auto ;-)
Die boordcomputers zijn inmiddels zo krachtig dat het geen uitdaging meer is.

Het meest interessante aan dit project vind ik dan ook de techniek die gebruikt is om de textures om te zetten in lijnen. Dit zou ook gebruikt kunnen worden voor b.v. een laserprojectie. En daar zit ook de grootste uitdaging lijkt me, je moet een algoritme vinden wat genoeg lijnen pakt om het herkenbaar te maken, maar niet te teveel anders wordt de framerate te laag of de lijnen te vaag.

Al met al een hele prestatie om dit te doen en daarmee haal je het nieuws.

Nu is Carmageddon op een boordcomputer van een auto zo absurd dat je daar waarschijnlijk het nieuws ook wel mee haalt. Zeker als je de normale besturing van de auto kan gebruiken om het spel te besturen :+
Het meest interessante aan dit project vind ik dan ook de techniek die gebruikt is om de textures om te zetten in lijnen.
Volgens mij is dit niet zo heel spannend. Wat hij naar mijn idee doet is het gebruik van mappings geheel diskwalificeren. Wat het oscilloscoopschermpje laat zien is alleen de geometrie (punten, randen en misschien oppervlakken). Dit wordt onderstreept doordat je door, wat vierkante vlakken zouden moeten zijn, diagonaallijnen ziet lopen. Die diagonaallijnen ontstaan omdat geometrie heel effectief uit driehoeken opgebouwd beschreven kan worden. Veel visualisatieprogs en games gebruiken deze manier van beschrijven. Om deze reden zijn (helaas) in veel computergames cirkels nog steeds geen cirkels maar bijvoorbeeld twaalfhoeken. Een cilinder wordt dan opgebouwd met twee van die twaalfhoeken waarbij ieder segment een rechthoek vormt opgebouwd uit twee tegenover elkaar liggende driehoeken.

Dat het spel functioneel blijft suggereert mij dat de oppervlakken ook nog binnenboord zijn. Wordt een ruimte gesloten door vlakken omhuld, dan weet een spel aan welke kant zich materiaal bevindt, en aan welke kant vrije ruimte.

Eigenlijk is dit de oude manier om 3d graphics te presenteren op oude 8 bits spelcomputers. Zo had ik een spel Starglider (Producent: Rainbird) dat een verdienstelijke 3d wereld met deze outline graphics optrok (toen noemden ze dat, ook logisch, vector graphics). Rainbird wist toen wel de diagonaallijnen weg te poetsen, wat de voorstellingen wat helderder maakt. Dit laatste laat bij deze Quake implementatie nog te wensen over.
whahahaha LOL, ja dit is ongelofelijk knap en nutteloos... hoewel.... op een FullHD oscilloscoop... wie weet
Ik krijg hier echt een soort Tron-gevoel van, geweldig man!

Het leuke hiervan vindt ik dat het misschien wat ontwikkelaars inspiratie kan geven tot een echte game die er zo uitziet of die dit gebruikt.

edit: ik weet dat zulke spellen er al zijn geweest ^^ - ik doelde meer op een nieuw verhaal voor een game waarin je dit element zou kunnen gebruiken :)

[Reactie gewijzigd door SkyStreaker op 24 juli 2024 15:10]

Dat is helaas geen heel nieuwe gedachte - die bestaan namelijk al heel lang. In den beginne bestond heel veel uit dit soort graphics (kijk bijvoorbeeld naar Asteroids), maar ook 3D games hebben nog wel eens een wireframe-mode.
ik zie jou reactie als een schermpje in een spel (zeg Alien(s), of een andere FPS) en om de omgeving te scannen druk je op een toets van je controller en zo'n soort schermpje komt in beeld en laat dit zien( zie video) of alleen waar de bad-guys staan... zou cool zijn toch!
Anoniem: 334725 30 december 2014 09:39
Echolocatie, maar dan letterlijk in golvenvorm 8)7
Niet echt met geluidsgolven. de geluidskaart wordt gebruikt, maar deze geeft gewoon een spanning af, welke door de oscilloscoop gelezen wordt.
Een geluidskaart genereert niet gewoon een voltage.
Het is letterlijk een golvengenerator(in volts natuurlijk) die de frequenties kan veranderen...
Wat deze gozer doet is het omzetten van de visuele elementen in quake naar geluid. Dit kun je rechtstreeks inpluggen in iedere willekeurige oscilloscope en zolang de refresh rate hoog genoeg is ga je quake zien.
Een geluidskaart genereert niet gewoon een voltage.
Jawel, dat doet hij wel, en door deze spanning vaak genoeg te veranderen kan hij en geluidsgolf maken. HIj maakt dus wel degelijk 'gewoon een voltage', alleen verandert hij dit x keer per seconde.
Wat deze gozer doet is het omzetten van de visuele elementen in quake naar geluid. Dit kun je rechtstreeks inpluggen in iedere willekeurige oscilloscope en zolang de refresh rate hoog genoeg is ga je quake zien.
Nee, De ingang van de ossiloscoop zit direct op de uitgang van de geluidskaart. van geluid is helemaal geen sprake, de geluidskaart wordt simpelweg als DAC gebruikt.

[Reactie gewijzigd door Zoidberg_AvG op 24 juli 2024 15:10]

Met geluid bedoel ik in software. Je hoort natuurlijk niks.
Een veranderende spanningsbron met een frequentie is per definitie een golf. Als hij een speaker in plaats van een oscilloscope zou aansluiten zou je "muziek"(niet aan te raden denk ik zo) horen.
Een veranderende spanningsbron met een frequentie is per definitie een golf.
Nee, dat is het niet. In een geluidskaart zit een D/A converter, welke in dagelijks gebruik gewoon golven van verschillende frequenties aan het maken is, wat wij vervolgens herkennen als muziek. Een DA converter zou echter met hetzelfde gemak bijvoorbeeld een blokspanning kunnen maken.
Dus als ik het goed begrijp heeft hij zijn pc een grote hoeveelheid geluidsgolven laten maken waardoor het er voor het menselijk oog uit ziet alsof er lijnen staan. Maar feitelijk meet hij enkel de output van de geluidskaart. Het is dus niet zoals arkanoid wat als feature op verschillende van deze apparaten staat.

Dat maakt het niet minder stoer.
Neen, een oscilloscoop is een losstaand apparaat dat voltage wijzigingen meet zoals bijvoorbeeld de spanning aan de uitgang voor een spanning die met een bepaalde frequentie aan de ingang wordt aangelegd. Vroeger waren deze analoog maar ondertussen zijn het digitale apparaten met onder andere een (micro)processor in. Deze tweaker is er in gestaafd om het spel daarop draaiende te krijgen maar zoals je kan zien is het apparaat er niet echt voor gemaakt om meer dan 1000 Londen te tekenen.

Edit: ik heb net het originele bericht gelezen, ja dus de scope wordt blijkbaar gewoon met "geluid" aangestuurd ( de schop ziet nog altijd gewoon een wisselende spanningsboog)

[Reactie gewijzigd door sw3ex op 24 juli 2024 15:10]

Nee, het spel wordt gedraait op een analoge scoop. Heeft 0,0 computing power en doet inderdaad niks anders dan spaning meten.
Alle processing gebeurt op een pc als ik het orignele bericht goed lees. De scope is slechts een beeldscherm in dit geval. Dat idee is niet echt nieuw: er zweven al lang mp3's rond op internet die je bijna rechtstreeks in een analoge scope kunt stoppen:
https://www.youtube.com/watch?v=3U7I3if3TtM

De conversie van quake graphics tot een geluidssignaal waar de scope iets van kan maken is wel nieuw.

Deze regel in het artikel is misleidend:
"Eerst schreef hij een simulator in Processing die kan draaien op het meetapparaatje: daarmee worden de benodigde lijnen op het beeld gerenderd"

De simulator draait niet op de scope (want die is analoog, en doet niet aan software).
Is wel beetje oneerlijk als je tegen iemand moet met een beeldscherm maar super gaaf.
Klop. Daarom zijn bij de meeste shooters pc en console gescheiden. Maar is al tijden bekend dat hardware je net dat kleine beetje extra kan geven als het nodig is. Al is deze sprong wel erg groot.
Hahaha gewelidg, een oscilloscoop. Volgende stap: Destiny op een mechanische rekenmachine!
... een oscilloscoop, een apparaatje waarmee normaal gesproken variaties in voltages worden gemeten.
Ouch....die deed pijn. ;( :| :X
Ik wou net hetzelfde zeggen, amateuristisch!

Op dit item kan niet meer gereageerd worden.