11 ms·
Fishdraw: Procedurally Generated Fish Drawings
- siavosh 5y agoThis is wonderful. There's just something evocative about fish--with their flat side portrait look, and wide open eyes that make them a perpetually interesting subject for art.
- tunnuz 5y agoI love these kind of projects. Well done!
- AlanYx 5y agoIf you like this, check out Lingdong Huang's personal website. It's chock-full of really joyful little projects.
- krylon 5y ago1. I like it!!! 2. Are these fish real or just real-istic? Not judging, just curious.
- RBerenguel 5y agoHere is the repository (was shared yesterday in reddit’s r/generative): https://github.com/LingDong-/fishdraw https://github.com/LingDong-/fishdraw
- sdevonoes 5y agoI took a look. I can't really understand it (unless I spend the whole next week on it... which I will probably do). Could someone with more expertise in the topic explain me how it is done (high level overview)?
- coolspot 5y ago0) sepect random parameters for body size/shape, fin size/shape, etc. 1) draw fish outline 2) complete rest of the fish
- MauranKilom 5y agoSounds a bit like /r/restofthefuckingowl.
- RBerenguel 5y agoWhat coolspot says below. I want to have a look and maybe create my own version, I love generative art. My "best" (the one that made me happiest) creation followed the same approach. It's an iris [0] , and the process of drawing tries to mimic how you'd draw it… and I just broke the implementation in the pieces needed for it: - Create background gradient - Create muscular coloured stripes - Add a bit of noise to the stripes - Gradient for the pupil - Reflection in iris and reflection in pupil (the last one is "fake") [0] https://github.com/rberenguel/sketches#iris-p5js https://github.com/rberenguel/sketches#iris-p5js
- Thoreandan 5y agoGenerated AFAICT :)
- rektide 5y agoFeature request: it'd be nice to have a way to generate a link to a particular fish, such that it can be generated again.
- brianherbert 5y agoIt looks like you can provide a seed based on the readme in the github repo. This would produce the same fish every time.
- jaredsohn 5y agoI think GP is asking that every time you refresh the fish, it uses a different seed and it publishes it, perhaps via a share link. Otherwise, to find a fish you want you'll have to manipulate the url multiple times.
- mzs 5y agohttps://fishdraw.glitch.me/?Bob=1234 https://fishdraw.glitch.me/?Bob=1234
- foobarbecue 5y agoWhy does this use let and var together? Was I (not a modern js expert) wrong to think var is considered obsolete? Is it because OP wanted to use var's scoping rules?
- jugg1es 5y agovar is not obsolete. You still need it sometimes for scoping reasons.
- int_19h 5y agoCould you give an example? It seems like any "var" could be replaced with "let" at a different scope.
- dheera 5y agoWon't work: if(checkForSomething()) { let foo = 2; } else { let foo = 3; } console.log(foo); // won't work But: if(checkForSomething()) { var foo = 2; } else { var foo = 3; } console.log(foo); // will work That said, I religiously avoid "var" and just declare the variable beforehand with "let" because there are too many other gotchas with var. Less debugging headaches. And use "const" religiously as well, like C++ people do.
- speedgoose 5y agoconst in C++ is very different than const in JavaScript though. I guess you are well aware of that but I feel like being pedantic. This is allowed in JavaScript: const foo = {bar: 1}; foo.bar = 2;
- int_19h 5y agoIt's not really any different if you keep in mind that foo is a reference here, and so that's what const applies to. The equivalent in C++ would be a const pointer to a non-const object.
- gadders 5y agoI think this is the first time I have ever seen Glitch used for anything.
- micromacrofoot 5y agoThis seems like an unnecessarily harsh anecdote. I've seen Glitch used for a lot of things! There's a bunch of cool stuff on there.
- booyah5678 5y agoThis was made on Glitch too https://news.ycombinator.com/item?id=27929278 https://news.ycombinator.com/item?id=27929278
- jugg1es 5y agoAn absurd and wonderful project!
- atum47 5y agoThis is great. Where did the inspiration come from for this project?
- abdupattoh 5y agoamazing.
- deleted 5y ago[deleted]
- dbish 5y agoLove the generated art projects. I just want an art ‘frame’ (display with small computer) that generates new art every so often. Put together a few of the various art ML projects into one product for this.
- dheera 5y agoYep, I did this https://dheera.net/projects/einkframe/ https://dheera.net/projects/einkframe/ I'm working on a 3-panel version of it since I want a "wider" view of this scrolling landscape, and single e-Ink displays that big aren't cheap but 3 of these smaller displays are still within my budget. https://imgur.com/a/3IfKpb3 https://imgur.com/a/3IfKpb3
- dbish 5y agoThis is really cool! Thanks for sharing
- mikeInAlaska 5y agowith a button where you can click it to save particularly genius results that appeal
- bigiain 5y agoMaybe. There's something beautiful about ephemeral things too.
- dh-g 5y agoHacked kindles work well for this.
- dbish 5y agoKindles are too small and have no color. I want a large colorful framed picture. E-ink would be awesome but that’s not cheap for color displays and def not for large ones.
- amirGi 5y agoThis is so dope - creating good generators is so hard, great work!
- gregsadetsky 5y agoThe same author's "Procedurally-generated vector-format infinitely-scrolling Chinese landscape" is also quite beautiful: http://shan-shui-inf.lingdong.works/ http://shan-shui-inf.lingdong.works/ (keep clicking the rightmost arrow)
- dheera 5y agoYes, Lingdong Huang is awesome! I have that exact one running on a framed eInk display on my wall. I had to make some minor modifications to make it run in NodeJS instead of in a browser, and then generate a raster image to send to the eInk display, but it wasn't hard. I got permission from the author to post my work to Hackaday (with credit to him) which I'll do at some point. I'm actually working on a 3-panel "wide" version of it that I want to get done first. https://dheera.net/projects/einkframe/ https://dheera.net/projects/einkframe/ 3-panel version in progress: https://imgur.com/a/3IfKpb3 https://imgur.com/a/3IfKpb3
- gregsadetsky 5y agoReally great project! Thanks for sharing it
- FpUser 5y ago>"Lingdong Huang is awesome!" I looked at his github and yes is is awesome. Thanks for pointing this. Will read a bit more of his stuff.
- jffry 5y agoThat's brilliant, and a perfect application for a display like that. Thanks for sharing and I look forward to seeing the 3-panel version
- ZephyrP 5y agoInconvergent (https://inconvergent.net/ https://inconvergent.net/) is another stunning generative artist as well; their generative trees (browser version: https://zv.github.io/static/algorithmic-tree.html https://zv.github.io/static/algorithmic-tree.html) are especially evocative of Fishdraw.
- bazzargh 5y agoThis is just lovely. But I am also tickled by the nominative determinism of the dots on the fish being generated using Poisson Disk sampling. https://github.com/LingDong-/fishdraw/blob/main/fishdraw.js#L1015 https://github.com/LingDong-/fishdraw/blob/main/fishdraw.js#... https://en.wikipedia.org/wiki/Supersampling#Poisson_disk https://en.wikipedia.org/wiki/Supersampling#Poisson_disk
- andrelaszlo 5y agoBecause poisson=fish in French? <º))))><
- darnfish 5y agoFish
- dcaranda 5y agowhy isn't this an NFT project?
- NelsonMinar 5y agough
- adam12 5y agobecause NFTs are bad for the fish / environment
- olivierkaisin 5y agounderrated
- zeptonix 5y agothe name could even be catchy ... CryptoFish
- JoeAltmaier 5y agoFun! And since "there's no such thing as a fish", these drawings are as legitimate as anything else you call a fish.
- dpeck 5y agoDoes anyone have a good list of resources for people who want to get a get baseline on understanding and implementing procedural generation?
- wrnr 5y agoIt's more art than code, maybe start drawing a city skyline. Have different basic types of roof (triangle, trapezoid, none), windows (round, square, subdivided) and a variable number of flours. Play around with it in html canvas.
- 123pie123 5y agoI don't have a list, but "processing" language is very good at art and math(s) stuff https://processing.org/ https://processing.org/ it has some cool demos/ examples https://processing.org/examples/ https://processing.org/examples/ and it's opensource
- dannygarcia 5y agoThe Nature of Code book is a great resource. Dan also deep dives on specific topics on his YouTube channel. - https://natureofcode.com/book/ https://natureofcode.com/book/ - https://www.youtube.com/c/TheCodingTrain https://www.youtube.com/c/TheCodingTrain
- brianf0 5y agoI have some generative art tutorials using p5js on my blog @ https://brianfernandez.dev/art https://brianfernandez.dev/art
- noduerme 5y agoIn terms of the drawing aspects, working on SVG or raw canvas drawing each have some drawbacks. If you don't need to output vector files, I recommend PixiJS, which gives you a stage-based display chain on top of WebGL where you can mix free-form line drawing with pre-made sprites. I used to write a ton of procedural graphics with Actionscript, and this has been my clearest path to continue on those projects. Some AS3 drawing code is almost directly portable. https://www.pixijs.com/ https://www.pixijs.com/
- 5y ago
- tartoran 5y agoI love the simple style, this is great. I’ve been toying with procedurually generated drawings in Racket and find it mesmerising to observe how much conplexity can be generated from the permutations of a few rules. There’s still a lot of fish to catch in generative art
- aendruk 5y agoA gallery of example results: https://github.com/LingDong-/fishdraw#gallery https://github.com/LingDong-/fishdraw#gallery
- joshu 5y agolingdong is a awesome. tons of interesting stuff in his github. https://github.com/LingDong- https://github.com/LingDong-
- mejutoco 5y agoWould be cool to have one of these simulated aquariums using these fishes.
- graderjs 5y agoThat's nuts. Someone has solved the algorithm of fish and this is it. But I thought I recognized his name and workstyle before. This guy is literally a genius. Some other works I've seen before: https://github.com/LingDong-/rrpl https://github.com/LingDong-/rrpl - a "radical" new way to describe Chinese characters as a composition of parts http://nonflowers.lingdong.works/ http://nonflowers.lingdong.works/ - procedurally generated flowers in style of classic Chinese watercolor paintings https://lingdong.works/ https://lingdong.works/ And don't forget more classics on his GitHub profile: https://github.com/LingDong- https://github.com/LingDong- including "A programming language for ancient Chinese, and procedurally generated Chinese landscape paintings" I want to see a gallery show in Beijing.... This guy's work is so fucking good. It's really cool how he puts all the code on GitHub too. Fuck yeah! :P ;) xx
- audiometry 5y agoYeah I recognized him from his Chinese landscape prod gen. I fried my axidraw’s pen lift servo trying to print one of them out. So much stippling. Need to learn JavaScript so I can understand what he’s doing.
- graderjs 5y ago:) Thanks. Cool story. Just perusing your other posts and saw your son wanted to learn linux? Not sure how advanced he is or his inclination but could you go with the OS course from MIT? There's a good PDF book that covers the basics of a linux-style OS to give a good overview. I crammed on it for a system internals interview with FAANG. It was fun! :) The parallel and distrubuted operating systems group operating systems engineering course model operating xv6 https://pdos.csail.mit.edu/6.828/2018/xv6.html
- sellyme 5y agoSo my current "people who consistently do really cool niche stuff" list contains foone, Neil Cicierega, jan misali, and now this guy. Any other suggestions?
- 5y ago
- neiman 5y agoI did this procedurally generated "groovy" fishes side project just a few weeks ago (it was a one day project). Not comparable to the work in this link obviously, but the coincidence made me smile. https://neiman.co.il/temp/fish/ https://neiman.co.il/temp/fish/
- olivierkaisin 5y agocryptofish!
- pettycashstash2 5y agoAdding to my favorites