One thing that folks may find interesting about this project on a technical level is that it's fully stateless including the backend that's responsible for interacting with Stripe Checkout, processing payments, and sending emails with receipts and links to re-download patterns.
The thing that makes that possible is that I'm using a seedable PRNG for the pattern generation and have a custom serialization format for all of the possible pattern parameters. This means that any pattern can be represented by a single short string like `w:1440!h:900!x:random!v:0.63!c:0.06!s:9gjk5s!f:sp!i:0.30` and reproduced with 100% accuracy.
That means instead of a database, I can just store the entire purchased pattern directly within the Stripe transaction within the `client_id` field using this compressed representation. Then it's just a matter of reading it back from the Stripe API when I get the "purchase completed" webhooks in order to build the correct attachments and send the customer their assets via email. This keeps my own service totally stateless & database-free, and also has the very nice property of allowing me to quickly and easily access the pattern by copy-pasting the client-id from the Stripe dashboard if I ever need to grab it for customer service reasons!
I know that people are beating you up over the price, but this is great.
1. Someone could generate the same asset for themselves using your open source library. Which is great for someone who has time over budget.
2. You are providing value in your packaging of that time savings.
3. You created a very cheap way to offer this using server less and stateless. Props to you for making something that is financially sustainable for a long time.
Number 3 is the most interesting of the above. That’s no easy feat and I applaud you for it.
Quite a cool approach. Although only one downside I see here is that you're just relying on Stripe to let you access order history? What if they don't let you access this data via APIs for data older than a certain time period? Or is that not much of a concern here?
Could you provide more details about this Stripe-process? Sometimes I write little tools like that and I think about monetarizing, but I'm just to focussed on the actual tool (you may call it lazy) so I don't want to take care of all this "bureaucracy-overhead" when handling the trade and things.
(Or just tell me: Go ahead and learn it, if you want to earn money :|)
It says you can use the library on your website if the website is open source. When does a WordPress website qualify as open source, or not? Or is the talk about gplv3 just trying to scare people because it's unclear to them what this requirement actually means?
Not criticizing your business model, just curious. Thanks for the tool, liked the aesthetics.
The source is, uh, themselves. So who cares? But they’ve attributed themselves prominently, anyway. Click FAQ:
> Trianglify.io is a tool I wrote to generate low-poly backgrounds, textures, and vectors. It's based on an open-source library, Trianglify, which I also wrote.
Author here - interesting to see this pop up on HN again!
Since there are a lot of questions in the comments that might be answered by prior writing/discussions, here are a couple relevant links:
0. Trianglify.io is a GUI for my GPL-licensed node library of the same name, which is available for use in OSS projects for free: https://qrohlf.com/trianglify/
I am dying to know the answer to this. I can’t get over the fact people are paying $8 for downloads of randomized triangles, but then again NFTs are a thing so I shouldn’t be too surprised.
Thank you for creating this! I remember using this for the header of my portfolio website before I got my first job. Happy to see that it's still active, I hope that the monetization model is working out well!
I felt a bit of irritation regarding the price at first, but after giving it a second thought and understanding it was based on OS lib, got okay with it.
It sounds like a bold statement: "Learn to program or pay."
Like it!
This is exactly the kind of sales model that helps everyone, though. If this frustrates you then you aren't thinking about it hard enough. The author offers the library that generates these images for free with a GPL license. If you are interested in the end product but don't want to / can't spend 8 dollars you can build it yourself easily thanks to the work the author did and released for free. If you'd rather not break out the IDE or can't then you can give the author a small amount of money to do it for you. Everyone wins. There are no losers in this situation.
What's your hourly rate as a designer, and how many minutes would it take to put together all the triangles in Illustrator?
If you make more than $16/hr and it would take you 30 minutes to put this together triangle-by-triangle, color-swatch-by-color-swatch, then $8 is not too much, correct?
Not just that... If he has to do any kind of customer support it rapidly becomes a money losing business at $1. Looks like it wasn't worth it at $4 either.
Paying for things can be a personal connection. I adore artists work, and occasionally buy things so they can be connected to me in addition to pay rent and so forth. So it's money for _connection_ vs paying for an individual _product_.
I used this to generate some two dozen wallpapers of various color schemes that were on my desktops for _years_ (I still use them on iPhone and iPad). Loved it, and also loved the result since they were varied and interesting to look at without being distracting.
I now have a set of scripts that downloads the Bing wallpaper of the day for Mac and Linux, and I like those as well, but sometimes miss the gradients and ambiance these generated since (in Windows at least) extrapolating the dominant color in those photos for desktop theme highlights mostly results in… brown.
About 20 years ago when I got started with GIS in 9th grade, my geography teacher told me about Color Brewer, this website to help pick colour palettes for maps. I noticed that the last name of one author was “Brewer.”
Your app has “colour brewer” as a label.
Is this a coincidence? Did Brewer coin the name all those years ago? Or does “colour brewer” predate or exist separately from that website, such as, “brewing up some colours” or something?
It's pretty, but there is an odd singularity when you scrub between zero and non-zero variance. Is zero variance handled as a special-case for some reason?
zero variance is all copies of the same triangle tessellated together. By definition a non-zero variance has to introduce change in at least 1 triangle and in doing so has to recalculate all connected triangles. It's hard to imagine how there couldn't be a strange blip when transitioning from zero to non-zero.
I didn't even notice, as you can just right-click and download. It's also not mentioned in the FAQ, which just states that "You own the copyright to any patterns produced using this tool, just like you'd own the copyright to a design you made using Photoshop or Illustrator."
Soo... a hybrid of donation button and tax on people who don't know about right-click → save image?
Basically, yes! Since the fundamental functionality is powered by my (free) open-source library, trianglify.io is a time-saving tool for those who want a quick GUI instead of having to download and learn the npm library.
That said, right-click > save as image is supposed to be disabled on that particular DOM element, but I'm guessing you probably have an extension or user-script that re-enables it. Which is fine, you're probably not the target audience for this! Trianglify.io is mostly used by designers working on professional projects for whom $8 to save 20-30min of tedious work in Illustrator is a very good value proposition.
> That said, right-click > save as image is supposed to be disabled on that particular DOM element, but I'm guessing you probably have an extension or user-script that re-enables it.
FYI, even without an extension, you can bypass it being disabled by holding down the shift key while right-clicking (at least in Firefox).
> right-click > save as image is supposed to be disabled on that particular DOM element
Having done some of my own monetizing experiments, I was surprised by how often people don’t make any attempts to circumvent what is written on the site. Text appeared to be much stronger than efforts to prevent free service.
Still, it’s kinda funny to
me if this works well enough to make any sales. It’s not possible to prevent download of images you serve, there are several ways to save them in all the major browsers without any plugins. Are you serving the full size image?Intentionally?
> Can I use the Trianglify javascript library on my website?
> Yes, as long as your website is open-source and complies with the terms of the GNU General Public License v3. If you're interested in purchasing a commercial license for the Trianglify javascript library, please get in touch.
Bleh. This along with the $8 export fee makes me really tempted to spend the 2 hours building out a similar library and webpage and release it as MIT.
The thing that makes that possible is that I'm using a seedable PRNG for the pattern generation and have a custom serialization format for all of the possible pattern parameters. This means that any pattern can be represented by a single short string like `w:1440!h:900!x:random!v:0.63!c:0.06!s:9gjk5s!f:sp!i:0.30` and reproduced with 100% accuracy.
That means instead of a database, I can just store the entire purchased pattern directly within the Stripe transaction within the `client_id` field using this compressed representation. Then it's just a matter of reading it back from the Stripe API when I get the "purchase completed" webhooks in order to build the correct attachments and send the customer their assets via email. This keeps my own service totally stateless & database-free, and also has the very nice property of allowing me to quickly and easily access the pattern by copy-pasting the client-id from the Stripe dashboard if I ever need to grab it for customer service reasons!