Among movement, animation, controls, and editor.
Today's Document

No title available

oozey mess
$LAYYYTER

pixel skylines
h
Sade Olutola
Noah Kahan
hello vonnie
Xuebing Du

PR's Tumblrdome
taylor price
The Bowery Presents
NASA

Kiana Khansmith

No title available
trying on a metaphor

shark vs the universe
I'd rather be in outer space 🛸

@theartofmadeline

seen from United States

seen from United Kingdom

seen from Netherlands

seen from Germany

seen from Slovenia

seen from United States

seen from Malaysia
seen from Pakistan
seen from Germany

seen from Malaysia
seen from Egypt
seen from Türkiye

seen from United States

seen from Malaysia

seen from Netherlands

seen from United States

seen from Latvia
seen from Netherlands

seen from United States

seen from China
@effortsandresults
Among movement, animation, controls, and editor.
Programming Fairy Tales
One of my co-workers and I started retelling fairy tales and folk tales with a programming theme.
The Boy Who Cried Wolf becomes The Developer Who Emailed “Important”
In the Three Little Pigs, the first pig used Java and he got hacked. The second pig used PHP and he got an SQL injection. The third pig used .NET and got hacked, but he sued Microsoft and the company made millions.
lookAt
Did I say lock the Y axis of the camera? I meant lock the roll of the camera. I realized I’d instead need some sort of lookAt function. Unfortunately the methods I’ve seen online appear to be inaccurate since applying them continually to the direction that the camera is facing (instead of at an actual target in the global space) just results in the camera’s rotation sliding towards the Z axis. I’ve wrote my own method to lock the camera’s roll and this appears to work just fine, also as a lookAt function.
Movement
I implemented movement and controller input in the last couple of days. It was pretty easy once I stopped thinking too hard. Now I’m stuck trying to optionally lock a quaternion to always be oriented with it’s Y axis upward. I’m pretty certain I don’t need to bother with pi, but I’ll need to check the documentation further. GLM doesn’t have the best documentation that I’ve seen. Probably not the worst either, but still.
A website dedicated to the fascinating world of mathematics and programming
So I’ve recently gotten addicted to this site. If you’re a programmer, beware the hours you’ll spend here sharpening your skills or just killing time.
I don't usually post or send messages like this, but I want to thank you for introducing me to that quote by Silvanus P. Thompson; it has really helped me redevelop my thinking and attitude towards calculus as a whole. Thank You! :)
No problem. I’m glad I could share it, although I’m sure that sort of thinking and attitude can be applied to more than just calculus.
Considering how many fools can calculate, it is surprising that it should be thought either a difficult or a tedious task for any other fool to learn how to master the same tricks. Some [calculus] tricks are quite easy. Some are enormously difficult. The fools who write the text-books of advanced mathematics—and they are mostly clever fools—seldom take the trouble to show you how easy the easy calculations are. On the contrary, they seem to desire to impress you with their tremendous cleverness by going about it in the most difficult way. Being myself a remarkably stupid fellow, I have had to unteach myself the difficulties, and now beg to present to my fellow fools the parts that are not hard. Master these thoroughly, and the rest will follow. What one fool can do, another can.
Silvanus P. Thompson Introduction to Calculus Made Easy, first published in 1910
Serialization
I've been making a lot of progress lately. I'm not sure if I mentioned that I'm remaking the engine. But the camera system went up in about a day. Now I'm exciting to try out this new abstract serialization class.
After a long drought
I've finally made some more progress. Due to many circumstances progress had been delayed. Now, the rendering system is coming together slowly but surely. Balancing the GPU and CPU is tricky.
This post is a more carefully thought out and peer reviewed version of a floating-point comparison article I wrote many years ago. This one gives solid advice and some surprising observations about...
Checking equality with a float? Better think again.
Be very, very careful what you put in that head because you will never, ever get it out.
Thomas Cardinal Wolsey
On Complexity
Being a software developer and musician I am no stranger to complexity. And what I've found through my learning and experiences is that the more complex something is on the deepest core layer, the easier it is to be used on the surface layer. Understanding this, one can only ask oneself, "How easy is it to breath? How easy is it to live?" Be not mistaken, living and moving is simple only because there is an infinite complexity at the core of life. Life doesn't happen by chance.
Anything made is enough for growth.
I programmed an auto-clicking application for some game so I can collect stuff while afk.
Divisible by Three?
Well, I've been thinking about it and was determined that there be a faster solution that's more on the bit level, and I think I've found it.
Consider the following table of hexadecimal numbers:
0x1 0x4 0x7 0xa 0xd
0x2 0x5 0x8 0xb 0xe
0x0 0x3 0x6 0x9 0xc 0xf
The last row all the numbers are evenly divisible by 3.
In the first row, 0x1 is not divisible by 3, but 0x12, 0x15, 0x18, 0x1b, and 0x1e are divisible by 3. And if we interchange the first digit (0x1) with 0x4, 0x7, 0xa, or 0xd, that is any of the other numbers from row one, the resulting number is still divisible by 3.
In the second row, it's just about the same. 0x21, 0x24, 0x27, 0x2a, 0x2d are all evenly divisible by 3, and the first digit (0x2) can be interchanged with any other number in the second row and still be evenly divisible by 3.
The third row actually doesn't even matter as long as the number of digits from row one equal the number of digits from row two.
Take for instance this large number 0x75F64ED2. Now let's count how many of the digits are from row one, and how many are from row two. All of the digits from row one are one '7', one '4', and one 'D'. From row two we have one '5', one 'E', and one '2'. Now comparing the sum of each together, we'll see that there is an equal number of digits from row one as from row two, which means that the number is evenly divisible by 3.
Here's the code version:
int row1Count = 0; int row2Count = 0;
int input = 78651;
while (input > 0) { switch (input & 0xF) { case 0x1: case 0x4: case 0x7: case 0xA: case 0xD: row1Count++; break; case 0x2: case 0x5: case 0x8: case 0xB: case 0xE: row2Count++; break; default: break; } input >> 4; } if (row1Count == row2Count) std::cout << "The input is divisible by three!"; else std::cout << "The input is not divisible by three. . .";
Also, if you don't like thinking in hexadecimal, you can also do it in decimal and it's actually easier because the table is smaller:
1, 4, 7
2, 5, 8
So take for instance the number 108651. There are two digits from row one and two digits from row two, which means the number is evenly divisible by three. An easy way to remember the table is to visualize a numeric keypad, such as on a telephone, only the rows then become columns.
Now how optimal is this compared to just subtracting 3 and using a list of set endpoints?
Well, you only have to initialize two extra integers instead of a large X amount of integers to mark ranges.
You only have to loop up to a max of 8 times for a 32-bit integer (16 times for a 64-bit integer), but the smaller the number then the smaller the iterations needed, as opposed to subtracting 3 X amount of times, depending on how big your list of numbers-divisible-by-three is and what the numbers in that list are.
EDIT:
I noticed a slight problem with this, but it is fixable. The number 111 is divisible by 3, however the algorithm will return false. So I surmise that if you apply the algorithm to the difference of the two sums continuously until the difference of the two sums is less than 3, then a solution can be met.
It was Sam's first view of a battle of Men against Men, and he did not like it much. He was glad that he could not see the dead face. He wondered what the man's nae was and where he came from; and if he was really evil of heart, or what lies or threats had led him on the long march from his home; and if he would not really rather have stayed there in peace -- all in a flash of thought which was quickly driven from his mind.
So I've been reading Lord of the Rings lately. . .