FullControlXYZ / fullcontrol

Python version of FullControl for toolpath design (and more) - the readme below is best source of information
GNU General Public License v3.0
672 stars 78 forks source link

[suggestion] string art example #35

Open ES-Alexander opened 1 year ago

ES-Alexander commented 1 year ago

I just came across string/thread art and thought it was really cool, so figured I'd note it down here for future reference (by me or whoever decides to pick it up) as something it'd be neat to have an example of.

There are apparently some pretty crazy string art pieces, and I suspect we can likely do something similar either with a plotter (e.g. #15) and/or as a printed border with bridge lines in between (e.g. as a fancy case of #23). There are a variety of existing free and paid tools that we could adapt the output of (which is likely good as a starting point), but it could also be fun to have our own open-source algorithm implementation 🤷‍♂️

For reference,

AndyGlx commented 1 year ago

Yep this is definitely a cool thing that's a great use of FullControl.

The guy mrdrbernd from instagram did some stuff like this with fullcontrol: video, final piece

He even printed the frame with FullControl!

What would be really great, as I'm sure you're thinking about, it to have some kind of automated workflow where people can do this v easily. That could be a gist, but could also be some more formal capability built in to FullControl. It make me wonder about how to allow the FullControl codebase to incorporate the vast potential range of applications that are relevant to it. It's easy to have lots of gists, but gets more complicated to try to keep everything directly in the code in a single repo. If there was a string-art repo, the challenge then is to make sure that repo can benefit from future enhancements of the main fullcontrol repo. Just thinking out loud.

ES-Alexander commented 1 year ago

If there was a string-art repo, the challenge then is to make sure that repo can benefit from future enhancements of the main fullcontrol repo.

The main approaches I can think of are either

  1. The string art functionality is a self-contained algorithm that full-control can install as an optional dependency
  2. The string art functionality has the full-control library as a dependency, so updating its version brings in updates from the library
fullcontrol-xyz commented 1 year ago

Yes they both make sense. I recently updated the webapp on www.fullcontrol.xyz so it's fully in sync with this repo. Previously it was running off a similar but old / customised version of FullControl. That didn't affect the website users, but made it difficult/impossible for me to take advantages of enhancements to this repo. Now that I've got rid of that awkward disjointedness, it's going to be easy to extend the website to do some more cool things. One option for sure is a pen plotter demo, where people tape a pen onto their print-head after it moves to a safe loading position. Then they tape some paper on the print bed and start plotting! Are you interested at all in kinda owning that demo? It's linked to quite a few of the bits you've done. The webmodel would need to be simple (maybe using a few demo images), but it would also link to a python notebook of the design, where users could change loads more settings, upload their own image, etc. In the website model, I'd envisage the user setting pen width and maybe some indication of how width changes with z-position, which could be calibrated with a simple test print before printing the real one. The use would probably choose the toolpath too (e.g. spiral / circles / lines / squares), but not much else to avoid the website getting massively cluttered. If they want to do more than the website allows, they can go to the Colab model of the design. It'd be a nice way to get your plotting stuff into a nice usable format for people and get you credit for it!