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
munce
Oct 23, 2010


Click to jack into the matrix.

Its all still placeholder art, but the general feel is close to finished.

Adbot
ADBOT LOVES YOU

Corla Plankun
May 8, 2007

improve the lives of everyone

munce posted:


Click to jack into the matrix.

Its all still placeholder art, but the general feel is close to finished.

That looks amazing, and I love everything about it.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

munce posted:


Click to jack into the matrix.

Its all still placeholder art, but the general feel is close to finished.

That looks awesome and I want to fly around it with a VR headset.

Uh... I figured out how to move a ghost around locked to the hardware's refresh rate? And it only took 2 hours of figuring out Z80 interrupt modes.

baby_whales
Dec 12, 2016


i've been messing around with some old look up table driven effects in glsl there's a lot of neat info in this article http://iquilezles.org/www/articles/deform/deform.htm

munce
Oct 23, 2010

baby_whales posted:



i've been messing around with some old look up table driven effects in glsl there's a lot of neat info in this article http://iquilezles.org/www/articles/deform/deform.htm

Video please if you have it.

I love the stuff gpus can do. its almost like magic.

munce
Oct 23, 2010

Luigi Thirty posted:

Corla Plankun posted:

That looks amazing, and I love everything about it.

That looks awesome and I want to fly around it with a VR headset.


Thanks guys! I'll post more as i progress. VR is definitely on the list of possible features to add. 2 stick controller works pretty well at the moment.

Ranzear
Jul 25, 2013

Luigi Thirty posted:

Once again I failed to get a job that I applied for and I ended up depressed, meaning I found a dumb project to occupy myself
That sounds familiar. You probably hear the 'keep applying' spiel, just keep shotgunning every application you see, but I can give you a better reason: Once you land a job, every rejection that comes afterwards is a beautiful moment of 'yeah, so what?'
Then you'll hate not having any time for your own dumb projects anymore. Doesn't help I lose 3 hours a day to commuting.

If you're dying for something productive to do and can tolerate/learn filthy javascript heresy, I can pass the rock on the Botes Gaem I posted sprites for a while back. Insertion broadphase code doesn't really screenshot well so I've been quiet about it, but I probably get to scrap that because I want to run separate passes for vision and collision now.

So here's a screenshot of all the stuff I'm not working on now!



Caliber.Online doc posted:

Bullets are direct-firing, but can be blocked by friendlies
I wonder why I didn't do that now...


Let's find out!

Ranzear fucked around with this message at 21:16 on Apr 9, 2017

Loezi
Dec 18, 2012

Never buy the cheap stuff
We completed our first very quick prototype of a multi-lingual (and hopefully multi-context) natural language generation system. This first proto produces coverage of Finnish municipal elections (held yesterday) in three languages including English.



The thing turned out surprisingly neat, it can report on anything from a summary spanning the whole country (pictured) to a pin-pointed report on how well any one of the 33 000 or so candidates did in a single polling station.

It should be largely context independent: the idea is that it should be adaptable to a different domain (say, sports or finance) with something like a day or two's work. Adding new languages seems to take between two hours and a day or so depending on how complex morphology there is in the language.

As the proof-of-concept ended up working, next up is some general improvements and integration of better machine learning components.

EDIT: Oh, and it's real time! That's probably worth mentioning :) We actually have it set up as a web server that generates the stories on the fly as users request them.

Jo
Jan 24, 2005

:allears:
Soiled Meat

Loezi posted:

We completed our first very quick prototype of a multi-lingual (and hopefully multi-context) natural language generation system. This first proto produces coverage of Finnish municipal elections (held yesterday) in three languages including English.




That's super loving neato. What are you using to pick out the key details? PCA? LDA? SMMRY?

Loezi
Dec 18, 2012

Never buy the cheap stuff

Jo posted:

That's super loving neato. What are you using to pick out the key details? PCA? LDA? SMMRY?

Right now we have a custom hand-written thing that allows us to easily modify a few key weights and quickly iterate on different models of "interestingness". I'm handwaving a lot of things away here, but here's a rough outline:

At the start we just get all the data pertaining to a geographic selection made by the user. For each data point, we calculate an outlierness score. It's calculated on a per-group basis where -- in the case of elections -- groups are geographic locations: "data for city A", "data for polling station 102" etc. This roughly indicates whether the number itself is interesting or not. The actual metric is based on the general idea of Tukey's range test but is slightly more complicated to allow for loads of special cases like all-zero data etc.

We then calculate separately an interest score that is based on multiple factors: data that pertains to a candidate is less interesting by default than something pertaining to a party. Cities are more interesting than polling stations. Votes in this election are more interesting than votes in previous election, data that descrives a change tends to be very interesting, etc. This is not affected by the actual number, but rather represents whether what the number means is something we care about.

The interest value and the outlierness are combined into a single score and the data is then sorted by score. Then we start picking data points in a most-interesting-first fashion with some constraints that temporarily influence scores. For example within a paragraph we discourage changes of topic from party X to party Z or place A to place B. Similarly between paragraphs we encourage change of topic so that multiple paragraphs are unlikely to talk about the same party/candidate.

There's plenty of other stuff going on as well. For example we allow picking of data points from related geographical areas with penalties on interest scores. The penalties differ based on what both the original and the "picked from" region type (city, polling station etc.) are. We also do some nasty things for data that represents ranks ("Candidate Y got Nth most votes in place A"). Also stuff like ensuring that the scores are not symmetric on both sides of the mean if one side is "better" than the other: A candidate getting 1.5 times the mean votes is more interesting than someone getting half of the mean votes. And similarly someone getting the most votes is about infinitely more interesting than someone getting the least votes despite both being the same distance from mean.

Sorry if that turned out a bit rambling, I'll clarify gladly if something didn't make sense.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Ranzear posted:

That sounds familiar. You probably hear the 'keep applying' spiel, just keep shotgunning every application you see, but I can give you a better reason: Once you land a job, every rejection that comes afterwards is a beautiful moment of 'yeah, so what?'
Then you'll hate not having any time for your own dumb projects anymore. Doesn't help I lose 3 hours a day to commuting.

Yeah. I found a badly-scanned copy of an Atari arcade hardware manual from 1984 and 2 hours of work (including lots of 68K debugging) later got it running some homebrew code:



Too bad it doesn't pay anything.

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun

Loezi posted:

Right now we have a custom hand-written thing that allows us to easily modify a few key weights and quickly iterate on different models of "interestingness". I'm handwaving a lot of things away here, but here's a rough outline:

At the start we just get all the data pertaining to a geographic selection made by the user. For each data point, we calculate an outlierness score. It's calculated on a per-group basis where -- in the case of elections -- groups are geographic locations: "data for city A", "data for polling station 102" etc. This roughly indicates whether the number itself is interesting or not. The actual metric is based on the general idea of Tukey's range test but is slightly more complicated to allow for loads of special cases like all-zero data etc.

We then calculate separately an interest score that is based on multiple factors: data that pertains to a candidate is less interesting by default than something pertaining to a party. Cities are more interesting than polling stations. Votes in this election are more interesting than votes in previous election, data that descrives a change tends to be very interesting, etc. This is not affected by the actual number, but rather represents whether what the number means is something we care about.

The interest value and the outlierness are combined into a single score and the data is then sorted by score. Then we start picking data points in a most-interesting-first fashion with some constraints that temporarily influence scores. For example within a paragraph we discourage changes of topic from party X to party Z or place A to place B. Similarly between paragraphs we encourage change of topic so that multiple paragraphs are unlikely to talk about the same party/candidate.

There's plenty of other stuff going on as well. For example we allow picking of data points from related geographical areas with penalties on interest scores. The penalties differ based on what both the original and the "picked from" region type (city, polling station etc.) are. We also do some nasty things for data that represents ranks ("Candidate Y got Nth most votes in place A"). Also stuff like ensuring that the scores are not symmetric on both sides of the mean if one side is "better" than the other: A candidate getting 1.5 times the mean votes is more interesting than someone getting half of the mean votes. And similarly someone getting the most votes is about infinitely more interesting than someone getting the least votes despite both being the same distance from mean.

Sorry if that turned out a bit rambling, I'll clarify gladly if something didn't make sense.


That's pretty cool. I think I might try to work out something similar for football games, that'd be a nice place to work on something like that.

Loezi
Dec 18, 2012

Never buy the cheap stuff

Ghost of Reagan Past posted:

That's pretty cool. I think I might try to work out something similar for football games, that'd be a nice place to work on something like that.

The "classical" things to do with NLG are weather forecasts, sports and finance, as those all involve producing large amounts of reports that are (almost purely) based on concrete numbers. The wikipedia page on NLG provides a reasonable overview of the bits and bobs that are needed, but I'd recommend Reiter and Dale's book as a better intro if you haven't done anything like this before. Being from the early 2000's, it's getting somewhat old and the concrete models it describes are no longer state-of-the-art, but the general architecture tends to still be rather valid (AFAIK). Plus it's an understandable read.

Ranzear
Jul 25, 2013

Luigi Thirty posted:

Yeah. I found a badly-scanned copy of an Atari arcade hardware manual from 1984 and 2 hours of work (including lots of 68K debugging) later got it running some homebrew code:



Too bad it doesn't pay anything.

Vector or raster or both? I have a Gravitar cabinet that predates that and always wondered about hacking a spare board :v:

Luigi Thirty
Apr 30, 2006

Emergency confection port.

It's raster, the System I hardware. 68010 CPU, FM synth, POKEY, speech chip, lots of stuff to play with.

Gravitar is 6502 based and the vector hardware is pretty cool. They used a homemade bitslice processor called the Mathbox that could do point transforms in parallel. Thanks to MAME it's all documented and hacking it would probably be fun.

MrMoo
Sep 14, 2000

When you forget margin: 0; padding: 0; :doh:

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
I think you meant overflow: none !important

go play outside Skyler
Nov 7, 2005


I wish every OS hid its scrollbars like MacOS.

MrMoo
Sep 14, 2000

Developed on MacOS so didn't see the scrollbar, hiding overflow doesn't fix it being slightly off to one side that the other styles somehow induced.

MrMoo
Sep 14, 2000

Here's the "new" DJI screen for Fox and friends:



I had to clone the axis scaling mechanism in order to pick a rounded version of the DJI value at opening to set the fake zero y-axis. I'm kind of surprised no one else does a graph like this.

Updates once a minute in almost the most inefficient method possible.

Here's another thing that barely gets any TV time because it is not really that much eye candy, certainly needs some styling TLC:



Everything is re-used elements from DJI, using web components sitting in a CSS grid. The graph is S&P 500, everything else I have no idea what they really are. It's all supposed to be real time reconfigurable.

(edit) after a bit of work, the content is all reconfigurable live, which means someone else flips a button and the symbols on the page change and pull in different content. Here is my high tech testing tool:

MrMoo fucked around with this message at 00:20 on Apr 16, 2017

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I can't export it yet but I got the Atari System 1 graphics ROMs loaded into a bitmap. 3 graphics banks, 4 bits per pixel, neatly separated into 4 separate ROMs per bank. Here's the first quarter of Bank 1 of Indiana Jones and the Temple of Doom with a 16-color grayscale palette.

Luigi Thirty fucked around with this message at 04:56 on Apr 17, 2017

MrMoo
Sep 14, 2000

From this screenshot I can tell VSR and YGE are from feed 2 and the others from feed 1. Difficult to find something not too obscure or annoying.



Or hiding elsewhere,

MrMoo fucked around with this message at 04:44 on May 6, 2017

Jo
Jan 24, 2005

:allears:
Soiled Meat
When we last left our heroes I was working on a Java automatic differentiation library. Here it is learning MNIST:



I added deconvolution recently and so now I can autoencode numbers.



I gotta' figure out how to make it stop overfitting after a bunch of iterations but still have the power to represent digits accurately enough.

Loezi
Dec 18, 2012

Never buy the cheap stuff

Jo posted:

When we last left our heroes I was working on a Java automatic differentiation library. Here it is learning MNIST:

Automatic differentiation rocks and more people should know about it!

Are you doing backwards mode AD, forwards mode AD or both? I'd imagine Java is difficult to work with for the double numbers trick so I assume you are doing the explicit calculations?

Jo
Jan 24, 2005

:allears:
Soiled Meat

Loezi posted:

Automatic differentiation rocks and more people should know about it!

Are you doing backwards mode AD, forwards mode AD or both? I'd imagine Java is difficult to work with for the double numbers trick so I assume you are doing the explicit calculations?

Forward mode is actually significantly easier, even in Java, but I'm doing reverse mode here. The hardest part was figuring out the adjoint calculation for matrix product. That alone took a month. I'm still not completely cozy with the calculus, but it works!

Loezi
Dec 18, 2012

Never buy the cheap stuff

Jo posted:

Forward mode is actually significantly easier, even in Java, but I'm doing reverse mode here. The hardest part was figuring out the adjoint calculation for matrix product. That alone took a month. I'm still not completely cozy with the calculus, but it works!

Cool. Would you mind giving an example on the API of your thing?

Ghost of Reagan Past
Oct 7, 2003

rock and roll fun
How does an HTTP server sound?



It sounds like a thread panicking.

But it handles requests and extremely basic URL routing (it doesn't send static files yet).

Jo
Jan 24, 2005

:allears:
Soiled Meat

Loezi posted:

Cool. Would you mind giving an example on the API of your thing?

Here's the repo. https://github.com/JosephCatrambone/Aij The readme has examples of the low level graph interface and the high level model interface built on top. Copying and pasting:

code:
Model m = new Model(1, 2);
m.addDenseLayer(10, Model.Activation.TANH);
m.addDenseLayer(1, Model.Activation.SIGMOID);

double[][] x = new double[][] {
    {0, 0},
    {0, 1},
    {1, 0},
    {1, 1}
};

double[][] y = new double[][] { {0}, {1}, {1}, {0} };

for(int i=0; i < 10000; i++) {
    m.fit(x, y, 0.5f, Model.Loss.SQUARED);
    System.out.println(m.predict(x[0])[0]);
    System.out.println(m.predict(x[1])[0]);
    System.out.println(m.predict(x[2])[0]);
    System.out.println(m.predict(x[3])[0]);
    System.out.println();
}

clockwork automaton
May 2, 2007

You've probably never heard of them.

Fun Shoe
Been playing with using ragdoll physics on meshes in unity to animate

https://twitter.com/lindseybieda/status/863601057863262209

https://twitter.com/lindseybieda/status/863604513265078273

https://twitter.com/lindseybieda/status/863608654829948928

https://twitter.com/lindseybieda/status/863611404733087745

https://twitter.com/lindseybieda/status/863946720404799493

Switzerland
Feb 18, 2005
Do what thou must do.
[v] Would play Low-Poly Goat Stair Dismount 2017

TheresaJayne
Jul 1, 2011
you can see why there are those silly glitches in something like Skyrim where the ragdoll physics messes up and flings the cart and horse across the landscape

Woebin
Feb 6, 2006

Oh, is Unity stuff fair game for this thread? I've been working on this game for the past four months and one of my teammates (there're five of us) made a trailer-ish thing. Gameplay videos are just a series of screenshots, right?
https://www.youtube.com/watch?v=KT1SzL1UhQw

Also goat physics thing looks rad. All the stuff posted in this thread looks rad. You're all rad.

Hubis
May 18, 2003

Boy, I wish we had one of those doomsday machines...

So kind of like a super simple IK solver?

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I dug out my Apple IIGS and installed the Merlin 16 assembler. Figured out how QuickDraw works... and now I'm working on my own drawing routines for a low-level demo thing.

Ranzear
Jul 25, 2013

Switzerland posted:

[v] Would play Low-Poly Goat Stair Dismount 2017

SUPER

GOAT

SUPER GOAT SUPER GOAT SUPER GOAT SUPER GOAT SUPER GOAT SUPER GOAT

Most inoovative simulator I've played in years.

Scaramouche
Mar 26, 2001

SPACE FACE! SPACE FACE!

Switzerland posted:

[v] Would play Low-Poly Goat Stair Dismount 2017

VR-integration for eye tracking so finally the Men Who Stare At Goats video game can be made.

Neurion
Jun 3, 2013

The musical fruit
The more you eat
The more you hoot

Not something I'm producing, but something I'm debugging and trying to understand on a deeper level: the 1990s DOS flight sim, Star Wars: TIE Fighter.

It's a little slow going, because I can't afford an IDA Pro license, so I'm stuck using the freeware version, which means I'm unable to use plugins to allow IDA to 'remote debug' the game as it runs in DOSBox. I have to rely on DOSBox's mediocre debugger and advance lines and set breakpoints using command lines like the old teletype days. Despite this, I've been working at this for a few weeks, and already mapped out some critical functions*, identified critical structures** and what their fields represent, etc. I don't really have an ultimate goal in mind, but my current goal is getting a good understanding of how the game uses its resource files (sprites, sounds, music, and especially the 3D models.) I'm also particularly keen on how the IMuse system works, especially with how the game segues from one portion of a track to the next to do the dynamic soundtrack thing in combat.



* Functions like handling player input in combat, loading game resources, the game's custom memory allocation system (that was a real doozy), as well as a handful of standard C library functions, like fopen, fread, etc.
** Structures like mission triggers, flight group information, craft information, etc.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Cool. Maybe you should use something with a better built-in debugger and more comprehensive PC emulation like Bochs?

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

Neurion posted:

Not something I'm producing, but something I'm debugging and trying to understand on a deeper level: the 1990s DOS flight sim, Star Wars: TIE Fighter.

It's a little slow going, because I can't afford an IDA Pro license, so I'm stuck using the freeware version, which means I'm unable to use plugins to allow IDA to 'remote debug' the game as it runs in DOSBox. I have to rely on DOSBox's mediocre debugger and advance lines and set breakpoints using command lines like the old teletype days. Despite this, I've been working at this for a few weeks, and already mapped out some critical functions*, identified critical structures** and what their fields represent, etc. I don't really have an ultimate goal in mind, but my current goal is getting a good understanding of how the game uses its resource files (sprites, sounds, music, and especially the 3D models.) I'm also particularly keen on how the IMuse system works, especially with how the game segues from one portion of a track to the next to do the dynamic soundtrack thing in combat.



* Functions like handling player input in combat, loading game resources, the game's custom memory allocation system (that was a real doozy), as well as a handful of standard C library functions, like fopen, fread, etc.
** Structures like mission triggers, flight group information, craft information, etc.
That's really cool. Any chance you could explain your process or what resources you used to poke around an old 16-bit executable and figure out what's what?
I've always been curious about reversing old games, but have never gotten further than hex editing resource formats. There seems to be very few information on actually dealing with executables, and they all seem to just describe the results (rather than the process) and assume everyone can intuitively figure out something as crazy complex as IDA.

Adbot
ADBOT LOVES YOU

Bob Morales
Aug 18, 2006


Just wear the fucking mask, Bob

I don't care how many people I probably infected with COVID-19 while refusing to wear a mask, my comfort is far more important than the health and safety of everyone around me!

SupSuper posted:

That's really cool. Any chance you could explain your process or what resources you used to poke around an old 16-bit executable and figure out what's what?
The DOS TIE Fighter uses a 32-bit DOS extender called DOS4GW, it's not 16-bit. you'd have to go back to something like Wolf3D for a 16-bit game

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