mrdoob / three.js

JavaScript 3D Library.
https://threejs.org/
MIT License
101.58k stars 35.29k forks source link

Donations for THREEjs Development? #11318

Closed Marlowmz closed 6 years ago

Marlowmz commented 7 years ago

I work at a company where we make use of a lot of open source libraries and tools and where possible, we try to make a donation to their further development whenever we use them in our projects just as a way to materially contribute to the projects we love and need.

I was scanning around trying to find a way to put money in the pockets of THREEjs, but couldn't find anything. Is there a way to donate funds? or is that antithetical to the THREEjs project? I can see how there would be issues with how to share with everyone who contributes, but there are some fixed costs like hosting, etc that could be payed with donations.

Thanks for all the great work!

mrdoob commented 7 years ago

Yeah, I wouldn't know how to distribute the money... so I tend to stay away from these things. Also, hosting is free.

pailhead commented 7 years ago

Just hire three.js devs, and it will be developed :)

fernandojsg commented 7 years ago

I think I agree with @pailhead let's say a person is working/has worked on a feature you like, you could donate to him directly to thanks him for that or to help him taking time to develop more features.

But I understand @mrdoob concerns about how to properly distribute the money around the huge amount of contributors that are doing/have done a great work. What about using the money to host simple competitions from time to time? Like a competition of demos done with threejs following some specific theme or so? :)

fernandojsg commented 7 years ago

Or you could use the money to create threejs merchandising (tshirst, stickers...) and send them to the contributors :)

pailhead commented 7 years ago

Where would you host this though? Things like this already happen in forms of various hackatons, 3d web fest etc.

fernandojsg commented 7 years ago

Something more informal and simple. Let's say something like the ludum dare, to implement some effect or feature or demo with a theme and it could be even something that could be needed for the core itself. No need to physical event of course, everything online.

takahirox commented 7 years ago

(BTW I'm still looking for a job 😅)

makc commented 7 years ago

I wouldn't know how to distribute the money

https://www.bountysource.com/ comes to mind

jaygarcia commented 7 years ago

@mrdoob have you considered making a business out of ThreeJS?

pailhead commented 7 years ago

@jaygarcia How would that work? Considering 800 contributors?

jaygarcia commented 7 years ago

@pailhead if there is enough demand, there are lots of models where ThreeJS itself could be monetized while staying open source. Monetizing ThreeJS would ensure that it has funding to continue development with N+ dedicated staff members.

pailhead commented 7 years ago

i dont understand, it seems like it already has N+ dedicated staff members, and probably a queue of people who'd be willing to collaborate. The user base is only going to grow. Could you give an example model of how this could work?

makc commented 7 years ago

I totally gave it right there above. Someone (shall we say 3js foundation) collects donations and posts bounties for issues. Case closed

mrdoob commented 7 years ago

@makc are you offering yourself for starting and running the 3js foundation? 😉

mrdoob commented 7 years ago

@jaygarcia It's already a business, every three.js app is mining bitcoin. You didn't read the small print? 🤡

fernandojsg commented 7 years ago

I always thought that threejs was created by some huge hardware corporation, and they designed it to be slow on purpose just to keep selling faster CPU/GPU from time to time :D

makc commented 7 years ago

@mrdoob one would think someone on the team would be more trust-worthy. after all, it does not have to be The Foundation, it could be paypal account or something. we probably are not talking millions of $$ here, so there will not be an option for people to cheat everyone and buy themselves a house.

pailhead commented 7 years ago

Err, based on recent experience with a PR im convinced that this couldnt work. Add literal profit to this equation and it will go south quick.

makc commented 7 years ago

@pailhead not sure what you mean, I had to go to page 2 of closed PRs to find rejected ones.

Marlowmz commented 7 years ago

I'm glad this has spawned an interesting discussion, and I understand the hesitation to take on the task of centralizing the project, and being held accountable for any money coming in - it's a big task, and could easily create a dynamic like in steam early access, where people who have given money to something under development sprinkle their own salty tears onto the development process because their pet issue isn't being addressed. Managing those people (and who would do that?) would be a miserable job.

The project is flourishing under the current model, so i understand the trepidation. I initially posted this just because I love the project and my company asked if there was any avenue to build a dollar amount into the budget for a project to help THREEjs development. I've been answering stackexchange threejs questions on company time every now and then to try and give back to the community where i can.

I guess i'll just have to try and help development when i can find the time, and I'm moving to a different country soon, and i'll probably find some free time to help out where possible. Thanks for the interesting input on this question. cheers!

pailhead commented 7 years ago

How different is that bounty thing from just putting up an ad like this?

Looking for a three.js developer to implement FOO into three. Result has to be submitted back to three, as a patch. Willing to pay X.

If you really want to part with some money, and get something like this in return, it seems like this approach would distribute the reward management.

@makc

FOO does PR1, BAR does PR2, BAZ does PR3, but they all solve the same issue and do the same thing. Who gets the glory?

@OtterFamily

I've been answering stackexchange threejs questions on company time every now and then to try and give back to the community where i can.

This to me seems like the way to go. Except that i would spend those limited resources on issues and pull requests. Even just discussing a PR would be beneficial because it brings different experience and use cases to the table. The quality of three.js related questions on stackexchange seems pretty appalling to me. Even though i try to answer as much questions as i can, it seems like a waste of time, as it seems to benefit few people afterwards.

makc commented 7 years ago

@pailhead whoever has their PR merged, obviously

makc commented 7 years ago

@pailhead Kat, Sheila and Rose all love you, who gets married? sometimes you have to make tough decisions :D

pailhead commented 7 years ago

It would be Kat or Sheila, because Rose is my mother, and she only wants to marry me because Kat and Sheila do. 😆

makc commented 7 years ago

How different is that bounty thing from just putting up an ad like this?

no different at al, that is bounty ad

pailhead commented 7 years ago

That could totally work.

makc commented 7 years ago

the thing is, we have 100 people who are willing to pay $5 each

pailhead commented 7 years ago

Some issues are showing through https://www.bountysource.com/, but have no bounty, or a bounty that is zero dollars (if im reading it correctly). Say that i don't care about the money, so i'm willing to accept $0, what happens then, seems like it still has to go through the same framework?

pailhead commented 7 years ago

I'm willing to take $0 for Bountysource, what now lol :)

makc commented 7 years ago

dont see this as some kind of ad for bountysource dot com, it was just an example.

pailhead commented 7 years ago

What im trying to say is that it seems more like money/time is needed for reviews and dialog, than for the initial implementation. 100 people pitching $5 worth of time wont help at all, but a couple pitching in $250 might be worth something.

makc commented 7 years ago

which is why I suggested that everybody just give $5 to single entity that can then post $500 bounties in everyone's interest

pailhead commented 7 years ago

I think we're going in circles. There are 178 open pull requests atm, the supply seems to be much higher than demand. From that, it seems to me that people are spending time developing three, but there is no time to review it and merge it (just look at @mrdoob 's comments). The money, seems to me, should be spent on people reviewing the PRs. What's the use for more open pull requests? No idea how you'd divide it though. If a 100 people say that they've read the code and that they think it's ok, it's probably much easier to merge.

makc commented 7 years ago

I had like 5 PRs that went through, and like 3 that did not; from that experience PR does not go through if 1 it needs more work but you dont do it, or 2 mrdoob does not like it (probably can be considered a special case of 1).

makc commented 7 years ago

(ok, I am a bit off in those numbers, actually there were 2 pages of PRs... no way. that much already?)

makc commented 7 years ago

Yes, it totally does not work on my fridge.

pailhead commented 7 years ago

Im sure theres a fridge out there where it works.

makc commented 7 years ago

Samsung Family Hub Refrigerator probably can run it.

cecilemuller commented 7 years ago

It wouldn't help for distribution, but Patreon would be useful for recurring donations to create a somewhat stable revenue stream at least.

pailhead commented 7 years ago

@makc here's a personal example:

I've got this npm package, it seems that people are downloading it. It got scraped and ended up on the bounty site.

it needs more work but you dont do it,

Not valid in this case, needed work (and probably needs more) but i'm constantly doing it. Without feedback i don't know which route to take when making decisions. The current state of this particular pr (https://github.com/mrdoob/three.js/pull/10750) is that it works, it solves the problem of using various default materials with instances (none of the other attempts seem to have tackled that). BUT, it does some funky stuff pattern wise, which would require feedback to address.

2 mrdoob does not like it

Not valid in this case. I think he actually commented somewhere explicitely that he "likes" it. I've also seen it mentioned and shown at a meetup during GDC as an upcoming feature in the new version of three.js. I was under the impression that he liked it.

It's been open since February. Seems like all your items have been checked, but the PR is still in limbo. In this particular case, with this particular PR, pretending it's not pure %$#%$ and that someone might find it useful, what needs to be addressed?

makc commented 7 years ago

or maybe @mrdoob is working on his very own implementation that was mentioned during gdc meetup, that just happened to have the same name? in any case it does not hurt to ask "what's up with my pr" :)

pailhead commented 7 years ago

Ermm, it was mine implementation that was shown during the gdc meetup. Credit, link and all.

Sure it doesn't hurt to ask, but it yields no results. Can you at least consider the bounty idea being flawed when it comes to who the recipient would be? Number of open PRs is still large.

makc commented 7 years ago

wait, are you saying we should just pay mr doob to accept PRs )

pailhead commented 7 years ago

no, i'm saying instead of having this discussion, we should both be looking at PRs and issues.

mrdoob commented 7 years ago

For that particular PR, I remember finding the way the transforms were being sent to the shader a bit over complicated. I asked if there was a better way and I was told there wasn't so I decided to study the subject to double-check. I reported my findings and left the rest of the PR for another time (as WebVR is a bigger problem to solve right now).

If PRs are simple and beautiful they get merged straight away. If PRs remove more code than it adds, they get merged straight away. If PRs require review, feedback and/or I need to study the subject then they get delayed.

I understand I'm the bottle neck, but having to justify over and over why PRs don't get merged straight away doesn't really help the cause. I could have used the time it took me to write this post to review (and maybe merge) a PR.

pailhead commented 7 years ago

I know, i'm not trying to bash you here and i understand how overwhelming this can get. I know i may be going over the top with activity, but i think there is a sweet spot between this and no activity.

Would it help you if more people reviewed? If so, i was hijacking this issue to try and figure out if there could be some kind of an incentive to make that happen.

I could have used the time it took me to write this post to review (and maybe merge) a PR.

This.

fernandojsg commented 7 years ago

We could do something like in the old days on the BBS: if you wanted to download 1MB of games,music,data, you needed to upload 2MB. So if you want to push a PR you should review 2 😄

pailhead commented 7 years ago

Dunno if you're joking but i like the idea 🍡 😆

fernandojsg commented 7 years ago

At the beginning I was writing it like a joke but now that I think about it, it not that crazy yep :) I just hope it won't end with plenty of random LGTM everywhere hehe Another way to move old PRs could be to have a PR of the week/month, chosen by the community and encourage people to comment on it, test it, to try to get it done more efficiently.

Bsheridan12 commented 6 years ago

If at some point in the future you do decide to accept donations Open Collective might be a good option to facilitate that. For the amount of work and support you offer for the project I'd be happy to contribute something - I'll keep an eye out for a donate button on the site!