I'm 15 years old and I've never been particularly interested in math or programming in my entire life. I wanted to do something for my school's arts festival since I have always participated but this time I wanted to do something different. I looked up how to do embroidery and found this video by pure chance. This is simply fascinating, you have completely changed how I saw mathematics.
The problem is school and school teachers. School is there to make people into unquestioning factory line workers. Don't expect to learn anything of value there.
I'm super interested in the FFT video! I'm also interested in how you went about making the machine to do this IRL, as well as the considerations for string tension and the like
That's exactly what I was wondering. Thanks for this comment! Congratulations to the author for this amazing video and all of his brilliant ideas, +1 sub, hoping to see the next video about fft algorithm :)
@@thewhitefalcon8539 yeah, and then you just code it in such a way that you never have to go over halfway around the circle in one direction on a single sweep so then you don't have to worry about keeping tension on the string while the length is contracting. I didn't realize this when I wrote my original comment, though
You're basically trying to reinvent how CAT scans work. Based on the outro it seems like you've already started digging into the literature, but the first step is something called a Radon transform.
@@virtually_passedYep, the first thing I thought of is that this is a great visualization of how (cone beam) CT works! It would be cool to see with a semi-translucent thread and back light. You could expand to CMYK coloured threads as well :) others have pointed out using the SVD. I'd point you to a classic computer vision paper called EigenFaces, which might be another technique for finding the weights on your basis vectors
@@Bob94390 Yeah, that would be more accurate. Of course, as everyone is saying, the way one does a (inverse) radon transform in practice is through the FT. And even then one rarely does an exact radon transform because it typically creates artifacts. So (my understanding, I am by no means an expert) is that at the end of the day the radon transform is just a model and in reality one is just manipulating FTs.
are we talking about the polar formatting algorithm here? Also, would applying the projection slice theorem help? I suppose projection slice theorem can be problematic since the string here is of uniform density.
Drawing an eye is spectacular art. Creating an algorithm and a machine that can use it to make art is PURE GENIUS, outstanding how far our brain can go!
This is utterly fascinating. It is truly one of the best representations of how to convert an algorithm into a practical situation. And combine that with art and you have magic and humanity.
My very first thought was this was going to be a Fourrier transform thing, then you told us about the matrix stuff. But alas, I got redeemed in the end!!! Great video.
1.9k views??? Wtf? This is an incredible quality video and you’ve put a ton of hard work into this I can see. It’s reminiscent of stuff made here and 3b1b put together. Thanks for sharing, and I hope it reaches tons of people as it deserves to!
@@lost.in.maze.official Uh, 3blue1brown is a example of the contrary. Grant gets millions of views on nearly every video they make, even on very obscure topics. Granted, (heh) they're an outlier, but still. Also, it might just be that string art is too obscure of a topic and the mathematics of such a thing are not immediately attention-grabbing. The thumbnail might also be to blame. It's very muted and gray, so it doesn't stand out among other thumbnails.
@@nikkiofthevalley He's not wrong. People'd rather watch others do stupid stuff or entertainment. It's obvious when you look at the most popular people on the platform.
In my youth during the 70's I was surrounded by various wire-art framed pictures and even did a few (geometric) versions for myself... but this absolutely blows my non-mathematical mind... thankyou for showing us what's really possible with this form of art🥰 (PS... I now know that I _need_ that stormtrooper artwork!!!)
I saw art like this on Pinterest months ago, and I wanted to recreate it. But I couldn't find anything on the process used to make it. So glad I found this video.
great video. nice visuals. i love how you explained this interesting concept so simple with just enough depth to understand it (and remember) and not too much depth, so it doesn’t get boring
Extremely well made video. Easy to understand and follow even without massive amounts of math knowledge. FFT video also sounds interesting, not sure how much I would understand but I want to watch it still
I coded one of these. I'm deeply intrigued by the way of looking at it you have since it's quite a bit more involved than the way I had of doing it. It also seems much much faster since it took my method forever. Very well done.
@@virtually_passed Instead of looking at all of the pixels that the line intersected or looking at the local neighborhood I just, hmmm actually it's been a while let me look at my code, ok I just looked at the one with the closest center for each in a rough line. So what I did was for slopes less than 1 I used an equation for a line solved for y and rounded, then for slopes greater than 1 I wrote the equation the other way around solved for x and rounded. Then I took the total darkness of all of the pixels along the potential lines and found the one that was darkest, then I subtracted some from the pixels along that line to produce a new image. It may have been a bass ackward way of doing it though, I'm certainly not saying I did it "right" or "well" or "competently" but it did end up working with a little tuning. Also the machine you showed looks super cool.
The last part seems to resemble how Stable Diffusion works, sort of. You draw a thread and see: if the resulting image gets closer to the target, keep it, otherwise remove it. Add one more thread and repeat...
I liked this a lot because I learned all the math from the video last year in university and this video shows me how it is actually used. Very cool stuff
What an absolutely beatiful video, just loved every bit of it! Looking forward to the fourier transform approach video too! Thanks for this quality content!
Likely recommended by youtube after I watched some video about CT scan reconstruction using FFT and weighting (which was quite good, but I don't recall much and I fall asleep during 2nd video explaining CT with ray cone rather than parallel rays}. As some people mentioned, very similar are hough/radon transforms. I guess they differ only in opposite aproach to description.
I originally thought this could be solved for continuous images (eg: bezier curves) by making some scoring function based on the distance of the string to the curve and using simulated annealing or something similar to optimize it. But your least-squares discrete optimization didn't disappoint
My guess was initially that you would use FFT for such a problem. FFTs are used similarly in other areas such as antenna/loudspeaker beam forming (pattern synthesis).
@@virtually_passed indeed! There might be some insight to gain in “simple pattern synthesis for complicated arrays” by RF get down here on RUclips - but I haven’t investigated too much into the usability of the method in your case
I thoroughly enjoyed this. I myself took out a pen and paper and attempted this approach on paper, which how well-made mathematical videos should feel. Wish you further success.
this make me think of interferometry, by combining a bunch of lines you make an image, also fourrier transform are used basically everywhere something is decompsed into a sum of values so it's not surprising that you can use FFT to make the algorithm much faster
I searched a bit about the string art problem. All I found was the wiki article and some stuff about Béziers curve and Computer graphics lessons about Bresenham algorithm and anti-aliaing. As an electrical engineer, I am familiar with a lot of these. But I like your mathematical approach more. You practically also did the Bresenhamm, but it's in a different way like the Least-Square-Regression Minimization problem. Very cool, I think, I am going to try to replicate this in MATLAB and see the results for myself :)
great video! I think a possible approach to improve the greedy algo is to randomly(or greedily, or some other principle) destroy some lines and try to repair the images by add some new lines to minimize the cost.
Instasubbed! I love this. Have had a sort of mystical fascination by circular dynamics like this ever since I discovered timetable multiplication. Thank you and I would love to see more videos on the subject!
I wonder if you could decompose a colour image into RGB, solve each then do three runs with red/green/blue string. I know they'd cover each other up to a certain degree, but I'd be fascinated to know if you could make colour string art using this technique! Perhaps allocate each nail a colour, so you've 1/3 the "resolution" but no masking of one colours' string by another. Anyway, fun to think about!
You could even add a white string that could 'cancel out' a line of color at a certain interval, like, at the very end, or in between certain colors. I wonder if this would show up graphically.
Wow, what an exciting application of math! When I saw the thumbnail, it reminded me of the math behind CT-imaging, and indeed the mathematical problem that you solve seems to be related... Keep on doing the good stuff!
We produce string art by placing nails all over the canvas and the algorithm is very similar! It doesn't only look at brightness though. For example it limits the number of threads per nail and it avoids completely white parts of the image.
Oh man, that is fascinating! I know it's for a contest, but I would love if you made the entire project open source with CAD and code so others (myself included) can make this project and learn by doing 😀
With all due respect, that's honestly a pretty unfair ask. While I know it's not how you intended it (I agree that it would be FUN to recreate this at home), but from an engineer's perspective it feels like you're asking for someone to give away for FREE the product that they worked so hard to conceptualize, design, prototype, code, troubleshoot, refine, and present. If it is someone's intention to do all of this work for it to be freely available, that is a decision that they have made on their own, and have somehow justified, and that's fine; but to REQUEST that they give it away comes off as lazy and entitled, and implies that their expertise and effort has no value. There is more than enough information presented here for someone like yourself who is interested in making such a device to find tutorials and explanations that are already available for individual aspects of the project. By taking this route, you will truly learn by doing, but in the process learn far more and be more capable of creating your own UNIQUE product in the future!
@@jhboulder hmmmm... I also wonder how much of this project has been built on others' open source work? Seems to me that the monetization of that knowledge would be fairly disrespectful to those who believed that knowledge should be openly shared. But that's just my opinion and you by no means have to feel the same. I simply feel like if someone has learned for free, they have a duty to provide their own knowledge to the world the same way. I'm almost done my first project and am excited to share the model freely. I hope you stumble upon it and enjoy!
@@nadimfetaih3841 there's a lot to unpack in that statement. "Open Source" seems to be a more complicated concept than I gave it credit for in the past. Speaking to the comment of 'monetization of knowledge that was gained for free', there are TONS of companies out there that are making money off of products or services that use pieces of Open Source projects, but because their end product is clearly distinguishable from other's finished products, it is generally considered acceptable for them to make money from these products and services. Major software companies are notorious for this, especially Google, Microsoft, Apple, and other similarly large software companies (not to imply that I think that these are the pinnacle of ethical business practices). Quite often, the bulk of the code that is used is just a copy-and-paste of snippets of code from somewhere else that they know already works, so they simply adapt it to their needs. As for the 'they have a duty to provide their own knowledge to the world' again speaks to our current cultural state of entitlement. We have come to expect that if someone else got something free, we should get it for free too. While I can understand where this feeling comes from, I still have trouble completely getting behind the thought that receiving something for free implies that you now have an OBLIGATION to pass it on for free. However, I CAN completely agree with that statement if it's changed ever so slightly to: "if someone has learned for free, they SHOULD CONSIDER PROVIDING their own knowledge to the world the same way." Everyone's situation is different, and there can be very valid reasons to not simply distribute it freely, anything from 'easy access to this could be harmful to society' to 'rent is due, so I need to make money off of my efforts to provide for my family' and a million different reasons. Thanks for respectfully sharing your opinion, and I hope that your maker journey is a successful one!
@@jhboulder Some people actually like to give away their work. Asking costs nothing. It's a binary answer. Being asked doesn't mean you have to say yes. Buying something is lazy and entitled. Making something from someone's designs takes time and effort and is very educational. Sharing enriches everyone. The opposite of sharing is just sad.
@@jhboulder You suggesting that them asking an innocent question is unfair is pretty unfair. I have no respect for the way you answered or your expressed opinions, their question is not freeloading and does not imply that the OP's work has no value. In fact asking for a way to interact further with an authors work does the opposite, it expresses that the work has value.
I'd have also included a part where it described the possible solutions to the boolean linear problem and the struggles of finding an optimal solution quickly, and the possible ways to do it anyway, that would then prove why going with a greedy solution is so much better
One of the few some3 videos that actually motivates the math in an original way, instead of making a slow and shitty video on math jargon that has 0 relevance and is basically trivial but somehow takes up 20 minutes of screen time. Good job lol
I made these in Primary school in PNG on art classes, we all did. Still have some of them hanging on my parents house. Magical thing is that you can spray paint the back board after YOU'VE DONE THE COLOURED STRINGS/THREADSM THE STATIC ON THE STRING AND THE PAINT REPEL EACH OTHER SO ONE NEVER STICKS TO THE OTHER :-)
Really well explained. A possible improvement is to remove from the original image the values already taken into account by each line, to avoid some areas being too dark (if you keep the original image untouched the algorithm will try to cover the same black spot again and again with other lines, even if previous lines already managed to cover it).
I passed my Fourier Analysis course this past semester. This is how my brain went during this video. Me at the start of the video: minimisation? I see! He's going to use a projection and use a Fourier Transform! Me part way: Oh... so no Fourier Transform... Me at the end: AHA! There it is!
This is very nice! I'm currently a 3rd year undergrad pursuing my BA(? (I don't know if in my country what i'm studying is equivalent to a BA) in mathematics. When I saw the title I did not imagine the math behind this would be, simply, linear algebra. Awesome video! Now I know something interesting to tell others about!
The moment I saw you describing lines in the various order i thought it seemed very similar to fourier transforms in concept. It actually sort of reminds me of the discreet cosine transform stage of the JPEG compression algorithm
Great video! I wonder if it can be done with a laser beam and a bunch of mirrors at the periphery (and some smoke to scatter the light and make the beam visible).
I doubt that's possible. The string has the advantage of being able to return to the same nail an arbitrary number of times, but there is a limit on how many mirrors you can place so close to each other for the laser.
Hexagonal apperently sufferes less from angular bias and would work to better model the lines. But you could also just double the resollution of the grid and input would become a hassle.
@@virtually_passed I have been creating a string art robot as a hobby after work for about six months now. Initially my code consisted of checking between the nails for the average brightness of the pixels and selecting the connection with the darkest average pixel value. I then subtracted this line from the original image. Your video has revolutionised my code in c#, I have just finished "studying" the pseudo-inverse of matrix and got busy with the code. The only thing I don't really understand is the concept related to drawing lines with different shades of grey (not black). I didn't think it had a particular effect on the final result. Anyway, thanks for this video. If your channel has any discord community or other group, I'd be happy to join.
Thank you for this neat and pedagogical video 😊 ! You made me want to try to implement a thread art construction algorithm. I came across few academic articles but i would apreciate that you share your sources. Looking forward for the FFT solution !
Super cool! I wanted to know how this sort of thing is done before. Thanks for the clear and easy explanation. I would love to see your FFT version of the subject matter!!!
I would probably do it by using different datasets. Like solutions of many system of lines. We know by logic more lines that cross create a dark spot. Having high value of crossing and intersecting lines create more darker shades. The closer lines are also results in darker shades as well. Having them as lines makes more sense as it gives a more nuanced way of creating them.
New video on string art is out! ruclips.net/video/dBlSmg5T13M/видео.htmlsi=KTr8aD_GwLb8t2u5
I'm 15 years old and I've never been particularly interested in math or programming in my entire life. I wanted to do something for my school's arts festival since I have always participated but this time I wanted to do something different. I looked up how to do embroidery and found this video by pure chance. This is simply fascinating, you have completely changed how I saw mathematics.
This comment was a delight to read. I'm glad its made you see the beauty in mathematics :)
The problem is school and school teachers. School is there to make people into unquestioning factory line workers. Don't expect to learn anything of value there.
Hey, how is it going? Any success to share in your art?
I’d also like to know if there’s an update to this (no pressure if there isn’t)
@@reyariassno
Congratulations on winning #SoME3. You had a great explanation, I can't wait to see more!
I'm super interested in the FFT video! I'm also interested in how you went about making the machine to do this IRL, as well as the considerations for string tension and the like
That's exactly what I was wondering. Thanks for this comment!
Congratulations to the author for this amazing video and all of his brilliant ideas, +1 sub, hoping to see the next video about fft algorithm :)
The machine looks pretty simple actually. One servo motor to rotate the turntable and another one to hold the string inside or outside the nails
@@thewhitefalcon8539 yeah, and then you just code it in such a way that you never have to go over halfway around the circle in one direction on a single sweep so then you don't have to worry about keeping tension on the string while the length is contracting. I didn't realize this when I wrote my original comment, though
@@slightlyenlightenedlayman Even if you did, you'd have the string spool on some kind of springy rotating mechanism like what winds up a clock
I think FFT works here because the matrix is circulant - it's like with polynomials
The beauty of linear algebra, optimization and creativity in one single video.
I so want to program this in python/numpy now.
Grate work.
You're basically trying to reinvent how CAT scans work. Based on the outro it seems like you've already started digging into the literature, but the first step is something called a Radon transform.
Thanks for your comment. I must confess I've never heard of a radon transform before. I'll look into it.
Or maybe an inverse Radon transform, since the image is known and it is the "projections" (string) that is sought?
@@virtually_passedYep, the first thing I thought of is that this is a great visualization of how (cone beam) CT works! It would be cool to see with a semi-translucent thread and back light. You could expand to CMYK coloured threads as well :) others have pointed out using the SVD. I'd point you to a classic computer vision paper called EigenFaces, which might be another technique for finding the weights on your basis vectors
@@Bob94390 Yeah, that would be more accurate. Of course, as everyone is saying, the way one does a (inverse) radon transform in practice is through the FT. And even then one rarely does an exact radon transform because it typically creates artifacts. So (my understanding, I am by no means an expert) is that at the end of the day the radon transform is just a model and in reality one is just manipulating FTs.
are we talking about the polar formatting algorithm here? Also, would applying the projection slice theorem help?
I suppose projection slice theorem can be problematic since the string here is of uniform density.
Drawing an eye is spectacular art.
Creating an algorithm and a machine that can use it to make art is PURE GENIUS, outstanding how far our brain can go!
Awesome video! I like how you showed what happened with an early attempt for the black-white fall off curve.
Thanks!
This is utterly fascinating. It is truly one of the best representations of how to convert an algorithm into a practical situation. And combine that with art and you have magic and humanity.
Thanks!
Thanks so much 🙏
My very first thought was this was going to be a Fourrier transform thing, then you told us about the matrix stuff. But alas, I got redeemed in the end!!! Great video.
1.9k views??? Wtf? This is an incredible quality video and you’ve put a ton of hard work into this I can see. It’s reminiscent of stuff made here and 3b1b put together. Thanks for sharing, and I hope it reaches tons of people as it deserves to!
Always starts from small amount of viewer
We're at 19k!!!
In fact, people tend to choose watching someone shaking their butt rather than watching math.
@@lost.in.maze.official Uh, 3blue1brown is a example of the contrary. Grant gets millions of views on nearly every video they make, even on very obscure topics. Granted, (heh) they're an outlier, but still.
Also, it might just be that string art is too obscure of a topic and the mathematics of such a thing are not immediately attention-grabbing. The thumbnail might also be to blame. It's very muted and gray, so it doesn't stand out among other thumbnails.
@@nikkiofthevalley He's not wrong. People'd rather watch others do stupid stuff or entertainment. It's obvious when you look at the most popular people on the platform.
This is really nice. Thanks for making it and goo luck in the competition!
It's nice seeing I'm slowly starting to understand these math videos.
The results are so striking, and I love how you talked through your thought process
3:57 line 3 was a little excited to get streched out into a vector XD! Greate video. I love seeing math and programming come together!
That’s brilliant. It is always easier to internalise math stuff when its being presented by some real example. Humanity needs more of this❤
In my youth during the 70's I was surrounded by various wire-art framed pictures and even did a few (geometric) versions for myself... but this absolutely blows my non-mathematical mind... thankyou for showing us what's really possible with this form of art🥰 (PS... I now know that I _need_ that stormtrooper artwork!!!)
Thanks! Glad you like it! 😊
Please make a video with more details on the machine. Awesome video, eagerly waiting for another on the other algorithm you mentioned.
I saw art like this on Pinterest months ago, and I wanted to recreate it. But I couldn't find anything on the process used to make it. So glad I found this video.
I've been fantasizing about this machine for so long. You are my hero.😂
great video. nice visuals. i love how you explained this interesting concept so simple with just enough depth to understand it (and remember) and not too much depth, so it doesn’t get boring
Glad you liked it!
Really amazing how you explained all the maths, the problems, the solutions and showed the end result 👏😊.
Glad you liked it!!
I'm very interested in the Fourier Transform Approach
I'm making a video about it ;)
Extremely well made video. Easy to understand and follow even without massive amounts of math knowledge. FFT video also sounds interesting, not sure how much I would understand but I want to watch it still
I coded one of these. I'm deeply intrigued by the way of looking at it you have since it's quite a bit more involved than the way I had of doing it. It also seems much much faster since it took my method forever. Very well done.
Oh wow, may I ask what method you used?
@@virtually_passed Instead of looking at all of the pixels that the line intersected or looking at the local neighborhood I just, hmmm actually it's been a while let me look at my code, ok I just looked at the one with the closest center for each in a rough line. So what I did was for slopes less than 1 I used an equation for a line solved for y and rounded, then for slopes greater than 1 I wrote the equation the other way around solved for x and rounded. Then I took the total darkness of all of the pixels along the potential lines and found the one that was darkest, then I subtracted some from the pixels along that line to produce a new image. It may have been a bass ackward way of doing it though, I'm certainly not saying I did it "right" or "well" or "competently" but it did end up working with a little tuning. Also the machine you showed looks super cool.
The last part seems to resemble how Stable Diffusion works, sort of. You draw a thread and see: if the resulting image gets closer to the target, keep it, otherwise remove it. Add one more thread and repeat...
This video made my head spin. the visuals are super helpful and the fact this works is truly impressive to me.
My heart sank a bit when there was no github repo in the description. This was an AMAZING video, thanks for sharing this knowledge!!!!
I liked this a lot because I learned all the math from the video last year in university and this video shows me how it is actually used. Very cool stuff
You are why internet exists. Good work sir!
This channel is about to boom 💥
And it deserves to!
Awesome content
Thank you 🙌
What an absolutely beatiful video, just loved every bit of it! Looking forward to the fourier transform approach video too! Thanks for this quality content!
Glad you enjoyed it!
That's so interesting. Your demo got me thinking about some ML algorithms, like the MSE loss function. Thank you!
Likely recommended by youtube after I watched some video about CT scan reconstruction using FFT and weighting (which was quite good, but I don't recall much and I fall asleep during 2nd video explaining CT with ray cone rather than parallel rays}. As some people mentioned, very similar are hough/radon transforms. I guess they differ only in opposite aproach to description.
I originally thought this could be solved for continuous images (eg: bezier curves) by making some scoring function based on the distance of the string to the curve and using simulated annealing or something similar to optimize it. But your least-squares discrete optimization didn't disappoint
This brings me back to my ML courses. Looks so similar.
My guess was initially that you would use FFT for such a problem. FFTs are used similarly in other areas such as antenna/loudspeaker beam forming (pattern synthesis).
I agree, it seems like a natural progression. However formulating the problem as an fft problem is very difficult in my view :)
@@virtually_passed indeed! There might be some insight to gain in “simple pattern synthesis for complicated arrays” by RF get down here on RUclips - but I haven’t investigated too much into the usability of the method in your case
I thoroughly enjoyed this. I myself took out a pen and paper and attempted this approach on paper, which how well-made mathematical videos should feel. Wish you further success.
Thanks!
this make me think of interferometry, by combining a bunch of lines you make an image, also fourrier transform are used basically everywhere something is decompsed into a sum of values so it's not surprising that you can use FFT to make the algorithm much faster
I searched a bit about the string art problem. All I found was the wiki article and some stuff about Béziers curve and Computer graphics lessons about Bresenham algorithm and anti-aliaing. As an electrical engineer, I am familiar with a lot of these. But I like your mathematical approach more. You practically also did the Bresenhamm, but it's in a different way like the Least-Square-Regression Minimization problem. Very cool, I think, I am going to try to replicate this in MATLAB and see the results for myself :)
Thanks. I enjoyed watching something useful for a change.
great video! I think a possible approach to improve the greedy algo is to randomly(or greedily, or some other principle) destroy some lines and try to repair the images by add some new lines to minimize the cost.
I agree! The only downside is that it'll be harder to recreate it from a single thread (unless you use some clever tricks)
Found this Masterpiece from SoME3😄
:)
You have easily earned a sub! This is criminally under watched
Linear Algebra was hands down my FAV math course.... Great Video gonna watch more
It is my duty to thank you for the good content you have provided.
Thanks :) 🙏
I basically learned all this in university, but only after watching this video i really understood what I'm actually calculating there
Instasubbed! I love this. Have had a sort of mystical fascination by circular dynamics like this ever since I discovered timetable multiplication. Thank you and I would love to see more videos on the subject!
Oh and did you build the machine yourself? Would love to see a video about the machine itself!
I wonder if you could decompose a colour image into RGB, solve each then do three runs with red/green/blue string. I know they'd cover each other up to a certain degree, but I'd be fascinated to know if you could make colour string art using this technique! Perhaps allocate each nail a colour, so you've 1/3 the "resolution" but no masking of one colours' string by another. Anyway, fun to think about!
Yes you can! Although I'd recommend CMYK instead of RGB
You could even add a white string that could 'cancel out' a line of color at a certain interval, like, at the very end, or in between certain colors. I wonder if this would show up graphically.
Maybe also use the Bayer filter to mosaic the colours and reduce the number of strings used.
Wow, what an exciting application of math! When I saw the thumbnail, it reminded me of the math behind CT-imaging, and indeed the mathematical problem that you solve seems to be related... Keep on doing the good stuff!
Glad you enjoyed it. I made a follow up video where I ended up using the math from CT scanners!
We produce string art by placing nails all over the canvas and the algorithm is very similar! It doesn't only look at brightness though. For example it limits the number of threads per nail and it avoids completely white parts of the image.
Oh man, that is fascinating! I know it's for a contest, but I would love if you made the entire project open source with CAD and code so others (myself included) can make this project and learn by doing 😀
With all due respect, that's honestly a pretty unfair ask. While I know it's not how you intended it (I agree that it would be FUN to recreate this at home), but from an engineer's perspective it feels like you're asking for someone to give away for FREE the product that they worked so hard to conceptualize, design, prototype, code, troubleshoot, refine, and present. If it is someone's intention to do all of this work for it to be freely available, that is a decision that they have made on their own, and have somehow justified, and that's fine; but to REQUEST that they give it away comes off as lazy and entitled, and implies that their expertise and effort has no value. There is more than enough information presented here for someone like yourself who is interested in making such a device to find tutorials and explanations that are already available for individual aspects of the project. By taking this route, you will truly learn by doing, but in the process learn far more and be more capable of creating your own UNIQUE product in the future!
@@jhboulder hmmmm... I also wonder how much of this project has been built on others' open source work? Seems to me that the monetization of that knowledge would be fairly disrespectful to those who believed that knowledge should be openly shared. But that's just my opinion and you by no means have to feel the same. I simply feel like if someone has learned for free, they have a duty to provide their own knowledge to the world the same way. I'm almost done my first project and am excited to share the model freely. I hope you stumble upon it and enjoy!
@@nadimfetaih3841 there's a lot to unpack in that statement. "Open Source" seems to be a more complicated concept than I gave it credit for in the past. Speaking to the comment of 'monetization of knowledge that was gained for free', there are TONS of companies out there that are making money off of products or services that use pieces of Open Source projects, but because their end product is clearly distinguishable from other's finished products, it is generally considered acceptable for them to make money from these products and services. Major software companies are notorious for this, especially Google, Microsoft, Apple, and other similarly large software companies (not to imply that I think that these are the pinnacle of ethical business practices). Quite often, the bulk of the code that is used is just a copy-and-paste of snippets of code from somewhere else that they know already works, so they simply adapt it to their needs. As for the 'they have a duty to provide their own knowledge to the world' again speaks to our current cultural state of entitlement. We have come to expect that if someone else got something free, we should get it for free too. While I can understand where this feeling comes from, I still have trouble completely getting behind the thought that receiving something for free implies that you now have an OBLIGATION to pass it on for free. However, I CAN completely agree with that statement if it's changed ever so slightly to: "if someone has learned for free, they SHOULD CONSIDER PROVIDING their own knowledge to the world the same way." Everyone's situation is different, and there can be very valid reasons to not simply distribute it freely, anything from 'easy access to this could be harmful to society' to 'rent is due, so I need to make money off of my efforts to provide for my family' and a million different reasons. Thanks for respectfully sharing your opinion, and I hope that your maker journey is a successful one!
@@jhboulder Some people actually like to give away their work. Asking costs nothing. It's a binary answer. Being asked doesn't mean you have to say yes.
Buying something is lazy and entitled. Making something from someone's designs takes time and effort and is very educational.
Sharing enriches everyone. The opposite of sharing is just sad.
@@jhboulder You suggesting that them asking an innocent question is unfair is pretty unfair. I have no respect for the way you answered or your expressed opinions, their question is not freeloading and does not imply that the OP's work has no value. In fact asking for a way to interact further with an authors work does the opposite, it expresses that the work has value.
I'd have also included a part where it described the possible solutions to the boolean linear problem and the struggles of finding an optimal solution quickly, and the possible ways to do it anyway, that would then prove why going with a greedy solution is so much better
Came from 3B1B's video. Will be staying for good math videos 😁.
Welcome!
Very cool video! My first thoughts were edge detection and tangents... but this is pretty elegant with being able to use a single thread!
Glad you enjoyed it!
Thanks, very cool. I appreciated the explanation, but I want to see more of that machine and its results! Please post. Thanks!
Mathematics is Art, glad to see Art being Mathematical
Very imperative! Math is definitely beautiful!
This is some kind of string theorie I would love to see 😄👍
One of the few some3 videos that actually motivates the math in an original way, instead of making a slow and shitty video on math jargon that has 0 relevance and is basically trivial but somehow takes up 20 minutes of screen time. Good job lol
Immediately thought it reminded me of FFT, happy to be validated on that. Looking forward to the next video.
Great video. I would love seeing the other algorithm you talked about in the outro and making of the Machine
I made these in Primary school in PNG on art classes, we all did. Still have some of them hanging on my parents house. Magical thing is that you can spray paint the back board after YOU'VE DONE THE COLOURED STRINGS/THREADSM THE STATIC ON THE STRING AND THE PAINT REPEL EACH OTHER SO ONE NEVER STICKS TO THE OTHER :-)
One of the best videos I ever watch...
Really well explained. A possible improvement is to remove from the original image the values already taken into account by each line, to avoid some areas being too dark (if you keep the original image untouched the algorithm will try to cover the same black spot again and again with other lines, even if previous lines already managed to cover it).
nice string theory bro
Thanks bro
I'm watching your series on differential equations and it is fascinating.
Thanks! I plan to make a lot more of those
So beautiful love it thank you ♥️
Thank you! Cheers!
I passed my Fourier Analysis course this past semester. This is how my brain went during this video.
Me at the start of the video: minimisation? I see! He's going to use a projection and use a Fourier Transform!
Me part way: Oh... so no Fourier Transform...
Me at the end: AHA! There it is!
one of the best recommendations by 3blue1brown
Thanks :)
honestly superb video, really interesting how you problem solved this
Glad you liked it!
You've gained a new sub. This is amazing!!
Yay, thank you!
This is very nice! I'm currently a 3rd year undergrad pursuing my BA(? (I don't know if in my country what i'm studying is equivalent to a BA) in mathematics. When I saw the title I did not imagine the math behind this would be, simply, linear algebra. Awesome video! Now I know something interesting to tell others about!
such an awesome video, wish you all the best
The moment I saw you describing lines in the various order i thought it seemed very similar to fourier transforms in concept. It actually sort of reminds me of the discreet cosine transform stage of the JPEG compression algorithm
So beautiful, interesting and educational!
Glad you think so!
Great video! I wonder if it can be done with a laser beam and a bunch of mirrors at the periphery (and some smoke to scatter the light and make the beam visible).
I doubt that's possible. The string has the advantage of being able to return to the same nail an arbitrary number of times, but there is a limit on how many mirrors you can place so close to each other for the laser.
Super looking forward to follow-ups on this! Great video, neat project, and just yeah, very cool. :)
Fascinating video. Thanks for sharing
This video is so good please make more into this topic i love it!
Hexagonal apperently sufferes less from angular bias and would work to better model the lines. But you could also just double the resollution of the grid and input would become a hassle.
I would absolutely love to see the source code. Amazing work!
Same here
Shouldn't we, after creating a new connection between nails, take corrections to what has already been connected?
Yes, that would help. One way to do this is at each iteration you can choose to either place a line or remove a line.
@@virtually_passed I have been creating a string art robot as a hobby after work for about six months now. Initially my code consisted of checking between the nails for the average brightness of the pixels and selecting the connection with the darkest average pixel value. I then subtracted this line from the original image. Your video has revolutionised my code in c#, I have just finished "studying" the pseudo-inverse of matrix and got busy with the code. The only thing I don't really understand is the concept related to drawing lines with different shades of grey (not black). I didn't think it had a particular effect on the final result. Anyway, thanks for this video. If your channel has any discord community or other group, I'd be happy to join.
Really nice to see! Looking forward to the next movie :)
Very fascinating and engaging video, the processes made me think of how JPEG storage works at some points
Thank you for this neat and pedagogical video 😊 ! You made me want to try to implement a thread art construction algorithm. I came across few academic articles but i would apreciate that you share your sources. Looking forward for the FFT solution !
So cool! Hoping to see a lot more content from you! Very very cool!
More to come!
It is in fact interesting, thank you.
I want the FFT version video please, that sound like fun
It's on the list :)
What’s fft?
Fast Fourrier Transform
@@rpyrat oh thx!
Very good video man. Totally made my day. Congratulations on creating such great content!
Glad you enjoyed it!
Awesome explanation! Loved it.
:)
This video exploded! Glad to see it's getting the attention it deserves.
Thanks
Looking forward to a followup video with the FT method!
Super cool! I wanted to know how this sort of thing is done before. Thanks for the clear and easy explanation. I would love to see your FFT version of the subject matter!!!
I would probably do it by using different datasets. Like solutions of many system of lines. We know by logic more lines that cross create a dark spot. Having high value of crossing and intersecting lines create more darker shades. The closer lines are also results in darker shades as well. Having them as lines makes more sense as it gives a more nuanced way of creating them.
Wait, do we get to see more of the machine? I want to see a video about building that!!
shouldn't you also consider the length of the wire section inside each "pixel" to weight the "darkness"?
I agree! That is another approach I've tried
I'll watch this when I get into college and learn advance math!!
thanks! I'm interested into the FFT video! no problem if it's math heavy