4 ms·
Building Bauble
- FragenAntworten 2y agoThis is both a great demo of what Bauble can do and an engaging description of its development. I'm impressed by both!
- mrayycombi 2y ago3d latex
- troad 2y agoThis is so cool. I love this so much. I read the article on my RSS, and then immediately hopped over to HN just so I could upvote. > Fortunately though, over the course of Bauble’s development, I had produced a comprehensive suite of test scripts with reference images that demonstrated all of the edge cases and problems that I had faced and already fixed and… No, of course not. I can’t even type that with straight fingers. There were no tests. Intensely relatable.
- xrd 2y agoWhat RSS reader do you use, may I ask? Mine (readrops for Android) doesn't render the images. It is probably quicker to just review the XML but I'm committed to this comment now.
- troad 2y agoNor did mine, interestingly. I'm not entirely sure why, the HTML for the first image seems to render fine on its own. It's a very long <picture> tag, seemingly optimised to return different sizes at different resolutions. It looks like something generated by a web framework. I still hand-write my <img> tags like it's 1999, so I'll leave it to the frontend wizards to explain what the problem here is. Re my choice of reader, I host FreshRSS[0] on a home server, using the official Docker image.[1] It comes with pretty good in-built webpage change tracking too, for websites that refuse to offer RSS. I don't feel confident enough to expose it to the Internet, though I imagine you could use something like Tailscale to tunnel home securely for it. [0] https://freshrss.org/ https://freshrss.org/; https://github.com/FreshRSS/FreshRSS/ https://github.com/FreshRSS/FreshRSS/ [1] https://hub.docker.com/r/freshrss/freshrss/ https://hub.docker.com/r/freshrss/freshrss/
- xrd 2y agoFunny, I'm using FreshRSS as my feed aggregator as well, but then reading it using the android app. One of us should file a bug.
- troad 2y agoThat is amusing! I'd think that your Android app would be using a different rendering engine to my desktop browser though? There must be something non-standard about those images.
- dinkumthinkum 2y agoThis is very nice. I remember first watching Inigo Quilez videos and they are extremely impressive but this, obviously, gives a little more insight into making something work. Well done.
- xnx 2y agoWow. Very impressive work and a very readable and interesting summary. You should be immensely proud. Personally, it is reassuring to know there are still people out there capable of doing such complicated and quality work. After seeing my 1000th $19/month thin wrapper over uncredited AI, I had doubts.
- keeptrying 2y agoBeautiful
- peterkos 2y agoAfter reading this, I am now of the belief that software is, actually, a good thing. And that programming can be enjoyable. Seriously, this does such a good job of capturing the feeling of MAGIC that code is capable of -- both in its process and in its output. Textbook "craft". It's hard to experience that sometimes when surrounded by dependency hell, environments, build systems, certain dynamic programming languages, and the modern web ecosystem.
- agentkilo 2y agoThis article is really inspiring! I have a few dozen half-baked projects, that's meant for no one else but me, to play with, or to "learn new things" from, but none of them ever became so complete and polished as author's Bauble. I can feel the pure enjoyment of crafting from the article. I hope more people can find out about it, and share OP's joy. I should really finish what I started. It may take, say, eighteen years, but I should finish them XD
- medhir 2y agoAbsolutely incredible, the power of persistence can yield such cool results. I bookmarked to play around with the editor sometime, I’ve always wanted to learn GLSL and this feels like a more gentle intro into the world of shaders.
- atombender 2y agoThe die cast bronze sculptures are very cool. Where does one go to get them cast from 3D models? Sounds very expensive to do as a one-off (the author is a developer at Jane Street, which probably explains why they could afford it).
- ianthehenry 2y agoI ordered them from sculpteo — the only service I could find that would do it. Very happy with everything I’ve gotten from them. It is very very expensive if you want to make anything large, but for small jewelry-scale stuff it’s not too crazy. The balloon is seven custom parts so that was pricey ($250 total?), but the other two models were around $50 each.
- atombender 2y agoThat's surprisingly cheap for a one-off. Thanks, I will have to check them out.
- uxcolumbo 2y agoThis is awesome and inspiring. Thanks for the write up. I like the look and style of the game art and making it interactive, somewhat makes me think of the game 'The last night' (still in development). Your post made me curious about Janet. Will explore it more and how it can be used for graphics and art.
- flir 2y agoThat was fantastic on, like, eight different levels.
- Multiplayer 2y agoBeen here for 15 years. This is the most interesting project and writeup I have ever seen here.
- tempodox 2y agoFuck Apple, I'm only getting “TypeError: undefined is not an object (evaluating 'renderer.recompileShader')” in Safari. It works in Firefox.
- spiralganglion 2y agoWorked on my iPhone.
- tempodox 2y agoWhat iOS version? I'm on macOS 13 (Ventura).
- ianthehenry 2y agohuh, that's no good. it works fine for me on safari 18.1. would you share the line that it's raising on? no other errors before that one?
- tempodox 2y agoNo usable line, only a URL: https://ianthehenry.com/posts/bauble/building-bauble/bauble.ac2cd35c7567d5b9da931631cefb1688a22d8b2b5f4db53c194f0022c2c5d987.js https://ianthehenry.com/posts/bauble/building-bauble/bauble.... After that, is shows line number 1 and a column number in the millions, so seems to be megabytes of code in that JS file. For each code box, I get two errors with the same URL, just different column numbers: - TypeError: undefined is not an object (evaluating 'renderer.draw') - Unhandled Promise Rejection: Error: failed to create webgl2 context This is Safari 18.2 on Ventura (Intel), which seems to be a buggy release all around. Even the scroll bars are broken.
- ianthehenry 2y agookay, that's helpful. the "undefined is not an object" bit is definitely a function of the "failed to create webgl2 context" error -- it tries to reference it unconditionally. no idea why it can't create the graphics context in the first place, though (and not much to do without one)
- skalarproduktr 2y agoCongrats, Ian, on the amazing side project and the thorough and thoroughly enjoyable writeup. You really got me with the tests for the original Bauble, I had a good laugh after that paragraph! I’m now also somewhat inclined to have a deeper look into Janet, it looks both useful and interesting.