HackerTrans
TopNewTrendsCommentsPastAskShowJobs

laszlokorte

1,157 karmajoined há 11 anos

Submissions

Show HN: M. C. Escher spiral in WebGL inspired by 3Blue1Brown

static.laszlokorte.de
176 points·by laszlokorte·há 3 meses·32 comments

comments

laszlokorte
·há 11 dias·discuss
If the comment above is correct, he was only added to the credits after he had to ask for it after the fact.

So the ONLY thing the license asked for is to be named and that was supposedly violated. So a multi million dollar company can just violate a generous license and then after a fact cling to this exact license while arguing to not pay a single cent more than the license asked for. Alright...
laszlokorte
·há 11 dias·discuss
Very cool! I did a similar (but much simpler!) experiment by implementing perspective projection via SQL, storing meshes (vertices, edges, faces), the camera position and the screen size in tables and building a single query that generates the SVG paths (including backface culling). Running via WASM SQlite inside the web browser. [1]

  SELECT project(...) as x, project(...) as y 
  FROM model, vertex, camera, transform 
  WHERE clockwise AND clipped IN BETWEEN -1 AND 1
[1]: https://static.laszlokorte.de/sql3d/
laszlokorte
·há 12 dias·discuss
Then maybe install the strobe lights in all important rooms? Most people have there phone on silent/vibration anyway and recently everybody uses noise-canceling headphones outside to not be bothered by other people...

All the infrastructure that would support deaf people (like additional signal lights, vibration signals, subtitles...) are also very helpful for everybody else in specific situations.

Everybody is handicapped part of the time
laszlokorte
·há 12 dias·discuss
I said nothing about banning performing surgeries or forcing parents to carry out a deaf child just for keeping some community alive.

I just wanted to point out that there is a path from "would like to prevent" to "stop everybody who does not match the profile from living".

The other responses in this thread already show in which bad light people look at deaf people. Maybe start talking to some of them.
laszlokorte
·há 12 dias·discuss
"I would like my child to not be deaf" -> "Many (most?) people would prefer their child to not be deaf" -> (3) "Deaf community shrinks" -> "Social support for deaf people is reduced/seen as not necessary" -> "Parents of deaf children are blamed for carrying out the child" -> "Parents are nudged (forced) to terminate the pregnancy" -> goto (3)

In a some way this is already happening (eg Judges forcing cochlea implants on babies while denying the parents support in learning/teaching sign language to the child)

Many people see this as an attack on the deaf community and their culture - and I have to agree.
laszlokorte
·há 13 dias·discuss


  write.it.your.self
  think.4.your.self
  written.by.my.self
all CNAME -> claude.ai
laszlokorte
·mês passado·discuss
I know nothing about the detailed technical differences between X11 and Wayland but with Hyprland for me the PIP is working as expected so I assume its not just a Wayland issue but specific to the window manager you are using? Maybe somebody else can explain?
laszlokorte
·há 2 meses·discuss
Semi-honest question: What do you need a window manager, code editor, chat app, etc for if claude is so awesome that it can do everything for you? Why spend 400$ on making tools that you wont use in any workflow because the only workflow that will be left is prompting and agent to run in a loop
laszlokorte
·há 2 meses·discuss
I think it was even featured and praised in a recent zed blog post
laszlokorte
·há 2 meses·discuss
yes there is a single toggle to disable all AI
laszlokorte
·há 3 meses·discuss
Recursion schemes are a topic too few people know about in my opinion. I wrote two simple and interactive introductions. One in Javascript [1] and one in Elixir as Livebook [2]. The Elixir version contains a few more practical examples.

[1]: https://static.laszlokorte.de/recursion-schemes/ [2]: https://github.com/laszlokorte/elixir-recursion-livebook/blo...
laszlokorte
·há 3 meses·discuss
The main issue is that the image needs to have a high enough resolution to be sharp at all zoom scales. Currently my images are vector graphics that I rasterize depending on the screen resolution.

The Escher Print Gallery requires even larger scales as it uses a zoom factor of 256 across the image (vs 16 for my images)

Others have solved this by either vectorizing the Print Gallery or even rebuilding the scene as 3D signed distance field that can be sampled via ray marching.[1] The later yields the best result but I did not want to copy it.

[1]: https://www.shadertoy.com/view/Mdf3zM
laszlokorte
·há 3 meses·discuss
I have not implemented proper multi-touch controls yet. Currently the gizmos need to be used for zooming, paning and rotating.

I will add multi-touch gestures soon.
laszlokorte
·há 3 meses·discuss
Thanks for the suggestion! I added a slow initial auto zoom and updated the up/down arrows to work while being pressed.
laszlokorte
·há 3 meses·discuss
I now updated the default view to already show the Escher effect :)
laszlokorte
·há 3 meses·discuss
Isn't the line you quoted about asking a real person co-worker?
laszlokorte
·há 3 meses·discuss
Based on other existing material on the topic (like the excellent code_report youtube channel) I once wrote an introduction to combinators and lambda calculus targetted at javascript developers (mostly targetted at my younger self) [1]

In short a combinator is a pure function that accesses only identifiers that are provided as arguments.

Length(x,y) { sqrt(xx + yy) } is not a combinator because it relies on global definitions for plus, times and sqrt.

But foo(x, y, b, u, v) { v(b(u(x), u(y))) } is a combinator because it only composes functions that are given as arguments.

Foo(3,5,+,square,sqrt) would result in the same value as length(3,5) so foo can be regarded as capturing the compositional structure of the euclidean distance calculation.

[1]: https://static.laszlokorte.de/combinators/
laszlokorte
·há 3 meses·discuss
I love Eschers works. A few years ago I watched an documentary about his in the cinema, but I can remember the name.

3Blue1Brown just released an amazing video explaining the geometric transformation for Eschers print gallery. This made me try to reimplement the effect as WebGL shader [1].

It was very much fun especially doing it fully on my own just based on the general idea without looking at actual existing implementations. It highlighted for me how in non-linear transformations even small mistakes on my side can have huge negative effects on the final image that are tricky to pin down due to the non-linearity.

[1]: https://static.laszlokorte.de/escher/
laszlokorte
·há 4 meses·discuss
With typst its fast enough to update the pdf/png/svg preview while you are typing, instead of waiting 0.x seconds when hitting save :)
laszlokorte
·há 5 meses·discuss
Think of types more as physical units to check your calculation. The position on a chess board and on a checker board are both 2d integer vectors but you might or might not want them able to be summed together, the same way that 5 liters and 5 grams are both real numbers but should not be summed.