Lefteris Stamatogiannakis (@estama2) profile picture

BeamNG CTO. Physics, programmer (Rigs of Rods, BeamNG). Database and big data researcher (University of Athens).

Attiki, Greece
Joined April 2019
Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)Photo by Lefteris Stamatogiannakis (@estama2)
To @EU_Commission , This is a contemporary photo of a 3000 years old board game from Ramnous archeological site in Greece. We are members of @videogames_EU and we support @StopKilingGames . Games *are* cultural heritage.
5
35
2
162
11,058
In BeamNG we like textual formats because they are nice for moding. We also like performance, so we spend time to optimize working with them. A talk on fast JSON decoding in FOSDEM 2026 by Adam Ivora showcases some of that work: fosdem.org/2026/schedule/eve…
6
302
New font2curves. The previous uneven bezier implementation, based on @iquilezles formulation had numerical edge cases and wasn't accurate enough. These are fixed with the new formulation, the fonts look a lot better with the new primitive: gist.github.com/estama/b72d7…
1
1
2
396
To remind, font2curves converts fonts to a list of uneven bezier curves* which can be directly rendered on the GPU. No atlases or fancy font rendering techniques required. *I provide the uneven bezier curve shader within font2curves
1
315
In continuation from my previous post, here is a font to quadratic curve converter that goes from TTF to quadratic curve primitives. This enables simple font rendering completely on the GPU: gist.github.com/estama/b72d7…
1
161
I was ill and couldn't focus, so i've decided to learn vibe coding by writing a True Type Font to center lines converter using Gemini 3. This can be useful for GPU font rendering without an atlas. Just draw the lines/SDF_capsules gist.githubusercontent.com/e…
1
1
293
It can also be useful for cases where Hershey fonts are used, such as CNC machines and so on.
1
141
If it isn't clear why @videogames_EU statement is problematic for all companies. Their position allows a sale to be fully destroyed at a future time including right after someone bought it. This kind of positions destroy consumer trust, and leads to consumer protection laws.
2
19
1
98
3,610
BeamNG is a member of @videogames_EU . VGE didn't ask BeamNG concerning their response to stopkillinggames.com . As far i know there wasn't a vote on this too. We do NOT agree with their statement, this is not how a representative group should be behaving.
11
199
8
982
63,050
Our security engineer Adam Ivora tracked down a Chromium Embedded bug in Linux. The full story: pilesmash.org/posts/debuggin…
1
10
2,195
Concerning SoA vs AoS performance. Most of the stuff i see is without any measurements or with isolated micro-measurements which are worthless when kernels are running as part or a whole. Well, i've measured, and in our use case the best is grouped AoS with a little bit of SoA.
1
1,352
Looking at an optimization video' example. He splits velocities and positions without regarding if they are frequently co-accessed. This is not about OO or DoD. If things are coaccessed frequently then they should be together.... youtu.be/NAVbI1HIzCE?t=251
1
986
I've been using my 10 year old Intel based computer for development all these years because i wanted to optimize for an average PC and also to find problems happening in low spec computers. Due to end of life of windows 8.1, i had to upgrade, which means that 1/2
1
4
470
my dev machine will be an AMD Zen 4, so i'll be optimizing the physics core for AMDs now. This won't change things that much tho, back in the Zen 1 days, there were scheduling sequences that benefited Intel CPUs and were suboptimal for AMD CPUs. Nowadays these are rarer to find.
3
325
The problem is to find the rotation between two sets of corresponding 3d points. Luckily for me, i've created an algorithm that is simpler than above and only requires a quat and vector library, so i didn't had to implement a matrix library.
1
1
I've learned to program by trying out the basic commands on the rubber keys of my first computer.
This Post is from an account that no longer exists. Learn more
During the last years i've been thinking about garbage-less Lua(JIT) vec3 APIs. We already have a range of setToAdd/Sub/etc methods but set based vector APIs obscure the math and increase the size of the code. I now come up with a stack based API that seems to work. Lets see...
1
LFS devs are looking into moving their physics to a different thread: lfs.net/forum/thread/100464 The best decision parallel processing-wise that we made was to isolate our physics core into a different dll. Lots of stuff are duplicated, but the needs are different too. 1/3
1
2
As an example, the game/gfx engine side is more biased towards matrix math whereas i don't even have a matrix library inside the physics core, i only use vector math. Physics vector math library is targeted towards performance, whereas game engine's one is more traditional. 2/3
1
Everything old is new again. AI text services need to look at SQL prepared statements: simonwillison.net/2022/Sep/1…
3
Sometimes I get lucky and find a short comment that provides more insight into a problem than several books did. Low phase shift is paramount in most of the filtering problems that we have, and this provides a high level overview (tldr, low order IIR win): dsp.stackexchange.com/questi…
1
2
The hardest filtering problem that we have is in our force feedback, as sim-driving is sensitive to response delay. I tested higher order IIR, kalman filters and others but they had delay or overshooting problems. We now use a 2nd order low delay filter, of my own devising.
2
The great thing about Euler angles is how many they are. And they are all named the same in code bases. We spend weeks trying to fix a bug and realized that we had two different Euler angle parametrizations clashing with each other.
1
3
On the other hand, Euler angles can safely roundtrip with rotation matrixes. Quaternions cannot. This is useful for save formats, if one doesn't want to generate unnecessary diffs on the version control system.
1
1