Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

"Terminal Velocity", a better Linux terminal graphics demo

by cavac (Prior)
on Feb 18, 2024 at 12:36 UTC ( [id://11157774]=CUFP: print w/replies, xml ) Need Help??

Last week i released a simple graphics demo for the Linux terminal (Fun with terminal color).

The low framerate and the mostly static graphics bothered me a bit. So, i , uhm did it yet again. Another demo, this time using Inline::CPP and massaged versions of tinyraytracer and tinyraycaster to provide some actual graphical content. As a matter of fact, Inline::CPP didn't work for my borrowed(*) code, and my understanding of CPP is a 20 years out of date. So i override the Inline::CPP RecDescent module to ignore my bugs. Hey, it's not production code, just a demo...

As in the last demo, your Terminal needs to support full RGB colors and have a size of at least 270x60 in size (characters, not pixels). SDL is sort-of-optional this time; the demo will run without sound if it can't load SDL. And as said above, you'll need to install Inline::CPP as well.

Here's the mercurial repository: https://cavac.at/public/mercurial/demos/terminalvelocity/

And the YouTube video: https://www.youtube.com/watch?v=MWcuI2SXA-A. OBS and YT compression did munge the quality a bit, though. Probably my fault for not understanding the OBS settings...


(*) "but with every intention of giving it back"

PerlMonks XP is useless? Not anymore: XPD - Do more with your PerlMonks XP
  • Comment on "Terminal Velocity", a better Linux terminal graphics demo

Replies are listed 'Best First'.
Re: "Terminal Velocity", a better Linux terminal graphics demo
by etj (Priest) on Feb 20, 2024 at 11:41 UTC
    Very neat! If Inline::CPP has bugs, please report them on GitHub. And looking at the code, it seems like this should "really" use (or could benefit greatly from using) Inline::Pdlpp?
Re: "Terminal Velocity", a better Linux terminal graphics demo
by Fletch (Bishop) on May 12, 2024 at 04:04 UTC

    Missed the first time around but . . . That’s pretty impressive.

    The cake is a lie.
    The cake is a lie.
    The cake is a lie.

      Thanks :-)

      I've since learned a bit more on how to use Inline::CPP and i've got a two week vacation coming up. There may be another, better demo coming, but i can't promise anything.

      PerlMonks XP is useless? Not anymore: XPD - Do more with your PerlMonks XP
Re: "Terminal Velocity", a better Linux terminal graphics demo
by etj (Priest) on May 11, 2024 at 11:47 UTC
    And I just finally watched the actual video: that is far beyond neat! Thank you for the shout-out, and especially for the nostalgia trip back to the late 80s with Amiga demos and suchlike.
Re: "Terminal Velocity", a better Linux terminal graphics demo
by marioroy (Prior) on May 11, 2024 at 17:58 UTC

    Thank you cavac for the cool demonstration and music.

      Well, the music isn't mine (see YT comment section for details) and i only imported some existing graphical demos and adapted them to use my imagecat routines.

      Plus doing a lot of fiddling with the timing to make it work with the music. Ye olde SDL library didn't allow me to skip the parts properly i've already timed, so i resorted to using the stopwatch function of my wristwatch and the old pen&paper method of calculating the correct lengths for all the different parts. Talk about old school ;-)

      PerlMonks XP is useless? Not anymore: XPD - Do more with your PerlMonks XP

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: CUFP [id://11157774]
Approved by marto
Front-paged by marto
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2025-06-17 01:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.