Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Athas
Aug 6, 2007

fuck that joker
I'm working on McCLIM, a GUI toolkit. Here are some screenshots from applications that use it. I haven´t written all of these myself.

This is Climacs, an Emacs-like editor that I have written most of the code for.

This is Beirc, a pretty functional IRC client.

This is Gsharp, which apparently typesets musical notation very well.

Fancy GIF animation of cl-wav-synth.

And finally Closure, a surprisingly functional web browser.

Adbot
ADBOT LOVES YOU

Athas
Aug 6, 2007

fuck that joker
I have an image of a Mandelbrot fractal:



It is not a very good fractal. But it has been generated via a program I wrote myself, which is itself written in a language and compiler I wrote myself, which has gained a Python+PyOpenCL backend virtue of some bachelor's students, which has permitted me to write a Python wrapper program to handle the PNG encoding.

(Sorry, but as a compiler researcher, it's not often I get to post in a thread like this.)

Athas
Aug 6, 2007

fuck that joker

Jewel posted:

The link to mandelbrot.fut seems to be broken! I don't have access to the futhark-benchmarks repo.

Sorry, fixed.

Athas
Aug 6, 2007

fuck that joker
Made another fractal generator. This time I am trying to make a Buddhabrot, but it looks more like a dust bunny:



Source code here. My program isn't yet able to handle the large amount of samples it seems that you need for clear renderings.

Athas
Aug 6, 2007

fuck that joker
I've written an interactive program for exploring the Mandelbrot set in real-time. Unfortunately, when I zoom in too far, I run out of floating point numbers. The chunkiness in the picture below is the result of neighboring (visual) pixels mapping to the same complex number, which I represent as pairs of floating point numbers. I guess I will have to figure out some way to scale the representation based on the magnification!

Athas
Aug 6, 2007

fuck that joker
I have been working on a clone of a Falling Sand game - I call it Diving Beet. It uses cellular automata to simulate pseudo-physics of particles (gravity, water+fire=smoke, plant+water=plant, lava melts metal, etc). Have a webm animation. The model runs entirely on the GPU (it is written in a parallel functional language) and so is quite fast. The frontend is in Python, and most of the time is actually spent blitting to the screen, it seems. The video is a bit choppy near the end - I think that is due to the recorder not being able to keep up, as it was perfectly smooth in person.

Athas
Aug 6, 2007

fuck that joker
I feel like a witness to self-harm.

Athas
Aug 6, 2007

fuck that joker
I did this:
https://www.youtube.com/watch?v=p-dpR76bZ-g

I research compiler optimisations, so I don't usually have much opportunity to do anything with visual appeal. But I defended my PhD last week, and to show off a bit, I was rendering my slides in a program written in the programming language I had designed and implemented as part of my research. I didn't tell anyone that in advance, but did a reveal where I suddenly disintegrated a slide into free-floating pixels interacting through gravitational attraction (essentially turning the slide into a 2D N-body problem), computed in real-time on my laptop. It looked like this (I press a button to make the pixels return to their original position, restoring the original image). It was pretty flashy by the standards of a compiler researcher, and the assessment committee seemed amused

Athas fucked around with this message at 09:03 on Nov 25, 2017

Athas
Aug 6, 2007

fuck that joker

Bruegels Fuckbooks posted:

This is super cool, but... (and this is a question I never thought I'd ask in a million years) - what is Sanic Hegehog doing in your Phd thesis?

I write about compiler optimisations. Gotta go fast.

Athas
Aug 6, 2007

fuck that joker

Bruegels Fuckbooks posted:

I get it but are there any normies on your phD review panel? I'm just trying to imagine that graphic from the perspective of like some fifty year old dude who doesn't know the meme.

Well, the defense is not for their sake - they already read my thesis, where I limited Sanic to a hedgehog on the cover page. And I find that computer scientists really don't mind jokes and silly pictures of vidya game characters, as long as the work is otherwise up to snuff.

Athas
Aug 6, 2007

fuck that joker
I got my ray tracer working properly:



It's crude, but I'm fairly happy with it, as it's fast enough to run in real time, even on my crappy laptop GPU.

Athas
Aug 6, 2007

fuck that joker
I'm not at all good at visuals either. The algorithm and design behind that ray tracer is something I have stolen from someone else. My only contribution was to rewrite it in the programming language that I work on (which did involve rewriting the tracing from being recursive to being iterative). Still, it's rather fun to write code in your own language and see the results pop up on the screen.

Athas
Aug 6, 2007

fuck that joker
Do you fully simulate the hardware, or are you just implementing the APIs as best you can? The Jaguar hardware looks really bizarre.

Athas
Aug 6, 2007

fuck that joker
I have constructed a game; FUTBALL:



I find it very stressful to play, but fun enough (in short doses). Also, writing the ray tracer for the graphics was fun. That does mean it requires a pretty beefy GPU to run.

Athas
Aug 6, 2007

fuck that joker
I'm writing a a ray tracer (a port of Ray Tracing: the Next Week to another language). I put together part of the famous Cornell box scene. This is what my ray tracer produces when run sequentially or on the GPU on my Linux system:



This is what it produces when run on macOS with OpenCL (using either of the two GPUs on the Macbook):



I have no idea where that dirty-concrete look comes from, but I kind of like it. I use a deterministic RNG that should be the same on all platforms.

Athas
Aug 6, 2007

fuck that joker

steckles posted:

Sweet. Everyone should write a path tracer.

The striations you’re seeing are almost certainly due to correlation from multiple paths getting the same random numbers. You can either wrap your RNG in a mutex or something, or use a differently seeded generator per thread.

Multithreaded RNG bugs are super dependent on timing and often don’t show up in obvious ways, so that's probably why you’re only seeing them on one platform.

You were quite right: I had actually fixed the bug in the library I use for RNGs, but I forgot to update it on macOS. I wrote up my ray tracer experiences along with a pretty picture. My interest is more in the code than in cool scenes, so I'm just using the same final scene as the book I followed:

Now I need to figure out how to reproduce that concrete look without just using a buggy RNG!

Athas
Aug 6, 2007

fuck that joker
I really like the retro look of terminal graphics and I wanted to see whether blitting terminal codes was fast enough for real-time applications. So I wrote an interactive Mandelbrot fractal explorer:



The main trick is using a box drawing character and separate foreground/background colours to get square pixels in the terminal. It's probably a well known trick, but I was quite pleased when I figured it out. Performance is surprisingly good even when you increase the "resolution" by decreasing the font size, although obviously not nearly as good as with proper pixel blitting. Still, I'll probably continue using this technique to run visualisations on machines I can only access via text mode SSH.

Code is here: https://git.sr.ht/~athas/tui-mandelbrot

Adbot
ADBOT LOVES YOU

Athas
Aug 6, 2007

fuck that joker

leper khan posted:

Just use sixel

That doesn't work in many terminal emulators. If I wanted to use something only pseudo-standard and not widely supported, I'd just use Kitty's graphics protocol, as it's much better than sixel.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply