Here's the mini write up about how they achieved real time raytracing on the CPU 25 years ago:
https://web.archive.org/web/20060213141031/http://www.demosc...
HN user
Here's the mini write up about how they achieved real time raytracing on the CPU 25 years ago:
https://web.archive.org/web/20060213141031/http://www.demosc...
https://www.youtube.com/watch?v=wYPY9-yjclo
Squeezing 3 hits (evenly placed) in the time that you'd expect to hit 2 hit.
https://beats.lasagna.pizza/?name=lo-fi+dust&bpm=95&i0=K0100...
Fun!
I'd love to be able to add triplets.
Yeah, I'm very familiar with the tech, I've been interested in games dev and web dev for a few decades now. So you could be right, that the models aren't ready to "play on their own" yet.
I tried doing a warcraft 1 clone, but that felt too complex for the model being used (openai 4.1). That model was just the default setting in copilot.
I dug a little deeper this morning, and it turns out I hadn't actually enabled my copilot 'pro' mode, which has granted access to some more current or dev focused models. So I'll take them for a spin to see what they're capable of.
My goal here is to roughly get a sense for when a task is too complex for an "agent" to handle.
I also want to try adding custom tools to suit certain project needs. For example, Unreal Engine has a python editor interface, so I'd like to have an agent drive the editor to build something. I have my doubts.
Once I have a feeling for what level of complexity can be handled, I'll see if I can manage the tools better using this understanding, by breaking large and complex projects into appropriate chunks of work / complexity.
/endBrainDump
I will. I'm just trying to evaluate the tools on a medium size task. I'm trying copilot's agent mode with the goal of creating a warcraft 1 clone. Or something resembling it.
* It's not mobile friendly, and you use arrow keys to move around
I'm on the side of AI is a huge productivity booster (by my guess... 10x)
But I don't want to make the claim lightly, so I did an experiment.
I signed up for copilot pro, and have been using their 'edit' feature. This is more than just their auto complete.
I set myself a goal to create a playable web game of classic frogger.
It took 4 hours with copilot "edit" and my full attention.
I didn't write a single line of code, but I did ask it to refactor and gave it a project description.
I suspect this would have taken me 4 days full time to get to this level.
Try it out:
Given my interest in games and demos, I feel the opposite. I'm always in search of the real-time method that looks plausible and can cover huge areas in 3d space.
Computational accuracy is not important to me at all.
Yeah the demoscene jumps out as a good candidate to represent "creative 'useless' programs". :)
I make a few demos, but my personal favourite was this 4k (windows executable less than 4096 bytes):
https://www.youtube.com/watch?v=sBcwQCBpEiE
It uses all the fancy compressing linker tech (called crinkler) along with a tiny music player and a glsl raymarcher.
I tried to download it but all I get is virus warnings now... I guess malware devs also like crinkler. :(
1) Can build to web mobile 2) Editor for the art team
A big smiley face. :)
uniform float time;
varying vec2 vUv;
// https://iquilezles.org/articles/distfunctions2d/ (Thanks IQ!)
float sdRing( in vec2 p, in vec2 n, in float r, float th )
{
p.x = abs(p.x);
p = mat2x2(n.x,n.y,-n.y,n.x)*p;
return max( abs(length(p)-r)-th*0.5,
length(vec2(p.x,max(0.0,abs(r-p.y)-th*0.5)))*sign(p.x) );
}
void main() {
// create coordinates at visual centre (y coords doubled for circles)
vec2 centre = vec2(0.25, 0.25);
vec2 uv = vUv * vec2(1.0, 0.5) - centre;
// mirror x to get both eyes for the price of one, and find eye offset
float eyes = length(vec2(abs(uv.x), uv.y) - vec2(0.035, 0.03));
// carve them out using smoothstep
eyes = smoothstep(0.015, 0.016, eyes);
float mouth = sdRing(vec2(uv.x, -uv.y + 0.03), vec2(7), 0.65, 0.1);
mouth = smoothstep(0.02, 0.025, mouth);
float shade = min(eyes, mouth);
vec3 yellow = vec3(0.9, 0.7, 0.0);
vec3 color = shade * yellow;
gl_FragColor = vec4(color, 1.0);
}Thanks for the tip.
I thought I recognized your handle! You wrote the "A Primer on Bézier Curves" article. Thanks for providing that amazing resource, it's been invaluable during my learning process.
Great article! I didn't know about Rotation Minimizing Frames or the double reflection method.
I've run up against the issue of unexpected twisting of splines at work more than once.
As an Australian, is the best approach to encrypt all my storage and communications? Is that even possible when the potential threat is the government?
I wholeheartedly disagree with this assessment of Apple. As a long time business owner and developer, I've had nothing but pain as a developer working with Apple technologies.
We've created over 100 cross platform experiences, and I'm seriously considering a #FckApple tattoo.
Counter point: Often I am faced with doing it right or doing it within budget for an activation that is designed to live for a few weeks only. I aim for 100% compatibility with different hardware, OS, browser, user experience, client expectation and non suicidal business practices.
"Satan should chair your meetings"
...
She already does.
Congrats on your PPL!
I did 10 hours 15 years ago, but stopped when my first baby came along.
I won't pretend to understand the intricacies in your article here, but have you seen this paper / video by Cem Yuksel (University of Utah)....
By my layman understanding the curves discussed in the following paper may be of use.
http://www.cemyuksel.com/research/interpolating_splines/a_cl...
In Example 3, there is a 'pushq %rax' but no subsequent pop command.
Error or is the stack being manipulated in another way elsewhere?
Very cool indeed. Seems like a good platform to apply the demoscene trick of "adaptive subsampling" to greatly improve performance at the cost of a little image quality.
It takes advantage of the fact that pixels that are close together in screenspace are likely to be similar enough to interpolate from it's neighbours where possible. It focuses the computation time on areas where neighbouring pixels are very different, such as object boundaries, shadow boundaries and large lighting differences.
https://web.archive.org/web/20101123123238/http://exceed.hu/...
As a long time self learner (35 years), I really enjoyed the learning format (and learning focus!).
I was surprised how much I enjoyed clicking I learned something, even though I got the yes/no answer "correct".
Well done Julia. You have me thinking if I should prep my own content to direct new users to when fundamental questions are asked.
I use Unreal Engine Blueprint visual scripting a lot, and I like it too.
Regarding your point about complex logic and number crunching can be alleviated by using a 'Math Expression' node... which allows math to be written in textual form in a node.
https://csdb.dk/release/?id=48577
You can actually get 9 sprites on a raster line, but only in a very specific configuration.
This absolutely blew my nerd mind when I saw it.
The famous English saying.... "Death, Taxes and 8 sprites per raster" no longer holds true.
A real life Heisenbug.
I'm with you on both counts.
I like fast music without lyrics. Lyrics are distracting when I'm coding.
If you haven't coded to Infected Mushroom, then you haven't lived. :)
http://www.youtube.com/watch?v=dLWXSsYJoWY&feature=list_rela...
You could also do I=RND(-TI)
Providing a neg number to RND would "reseed" the random number generator. TI was a "system" variable that updates every 60th of a second.
In CBM BASIC RND(1) returned a floating point value between 0.0 (inclusive) and 1.0 (exclusive).
205 + RND(1) would always evaluate to 205 when truncated.
205.5 + RND(1) pseudo randomly selects between 205 and 206