How could I (better) contribute to three.js

It’s not BB, it’s Drupal. Having control over the system gives way more flexibility than sitcking with a hoster like discourse, basically anything discourse provides is provided there as well. But also seamlessly merges with all other features.

Your forum has a place just as everything else. Nothing can monopolize the arena!

As mentioned, i don’t want to interefere with discourse if this platform stays prefered. It’s rather a standalone all-in-one platform separately. The idea of an asset-store/repository (not necessarily commercial items) was declined, so i will run and host the platform myself.

I rather imagine a more community based platform like Unity, Unreal etc. all have, especially the section for assets is something i missed for THREE.

It’s basically almost ready now, i’m always open to any suggestions though, and anyone who would like to help.

1 Like

Completely agree with a central location for assets!

That is why I made within Discourse:

True this is buried within discourse unless you search for a particular item and may never percolate on the list unless you know what topic you are looking for.

2 Likes

Yes, that’s something users, especially visitors can find easier within an asset site and structured items. The acronyms for example will link terms within regular posts to the term description, what gives it much more functionality since one would rather google the term here instead looking for a glossary post.

3 Likes

Thanks for sharing and I look forward to your forum.
If I can help you let me know!

1 Like

@looeee @Mugen87

Could i somehow establish trust with you two specifically? I am convinced that i’m not being malicious, and I this issue really got to me… i’m an emotional introvert :slightly_frowning_face:
Not sure if this is a good example, but I’ve tried asking for more generic help. (links at the end)

I think this issue of trust got to me. @Mugen87 I’ve been through the whole process of answering three.js questions on Stack Overflow and found it incredibly frustrating. The other day I’ve seen you answer yet another question about asynchronous javascript, which I’ve answered myself in the past a few times, and then edited a whole bunch of times (removing three.js tag, and pointing out that this is just basic javascript).

I end up taking this too personally. Like, am i such a horrible person that these people can’t spend a few minutes glancing at my proposal, but random 0 reputation SO users given the time, so i must’ve currently sunk even lower. Did i come off as some ego-maniac in the past who people just ignore now etc.

I think if one could automate your answers @Mugen87 on Stack Overflow, that somehow you’d end up having more time to look at my proposal. Not because it’s mine, but because you’re a collaborator, and because it’s just another open PR. But based on my OS question, i think that this is not a valid expectation on my part.

I have tried to:

  1. file bugs
  2. answer stack overflow question
  3. moderate stack overflow questions so others can answer them easier (maybe that meta question made it so that you see 1 stupid question per day instead of 10)
  4. answer questions here
  5. propose patches
  6. tried to make npm modules

First because i like working with three.js (minus onBeforeCompile), but i also wanted to gain trust from others, that i may have decent ideas about how some things could work differently. Pushing some of these ideas aggressively, makes me feel like i’ve just tossed away all this work.

There’s also some background that makes me feel butt-hurt, i was on the same crusade for a year about the onBeforeRender and onAfterRender callbacks, and it was a frustrating experience. I just started looking at three.js source and identified a pattern. I haven’t been programming long so this felt validating and i suggested a tiny PR in late 2015. In late 2016 it finally got merged, but not after i went on yet another wall of text rampage.
It seems like it allowed for quite a few refactors to be made with the examples, and i got to use it in my professional life, making it a lot easier. I thought that some trust should have come from that. Not too long after that i proposed another small patch that i felt could make life easier. This is the one i’ve been crusading for again lately.
There are various theorems i have on how not having it is wasting a lot of peoples time, but i think i’ve got an axiom too. GLTFLoader is a pretty popular loader, and uses onBeforeRender (my baby :slightly_frowning_face:) in a bad way. Three devs seem to have worked on a method in that file over a course of a year. Two of them are heavy weights whos time i imagine is super valuable i.e they could improve some other are of the code. It’s 160 lines of numerous revisions over a year, while my PR suggested long before that, would have removed the need for that logic altogether.
I think that all programers hate redundancy, think that i’ve cried wolf too many times, that i’m doing something wrong. Especially if i’ve given someone a rope to hang themself with (onBeforeRender).

So if you’ve reached this far, could i venmo you two @Mugen87 and @looeee money for a six pack and we could have a beer for like, old times sake, “i used to know that guy when he was cool” and maybe use some of that time to look into some code in detail, you know just geek out? Or could I just pay your rates for an hour, no obligation to accept anything, just review some code in a three.js expert consultant role?

I think if i could make an argument in my environment for working off a fork, I could spend my time developing examples and modules that could potentially be merged at some point, but could potentially have value in its own little ecosystem.

@pailhead For sure, nobody thinks that you’re being malicious. And there are no trust issues here - I’ve come across your PRs and comments from time to time and they seem only genuine, well intentioned and helpful.

I know it’s frustrating when your PRs and topics get ignored. But it happens to everybody - I have a couple of PRs open that just seem to have been forgotten, for months, no matter how often I try to bump them… and a couple of others that I need to work on and just haven’t found the time to.

Perhaps there is some trust to be regained, but it’s minor and purely related to the length of your posts. Like, people think “oh, it’s the guy that writes long rambling posts, I don’t have time for this”. There’s nothing malicious here, they bear you no ill will, they just don’t have time to read your long posts. I mean, I meant to reply to this 3 days ago and only found the time to do it now.

I would say the solution here is simple - give yourself a word limit, say 200 words per post, and only one reply at a time, plus a minimum of pseudocode, one or two images and one or two links. Stick to this, and pretty soon people will only judge you on your fancy new short, succinct posts. All verbosity will be forgotten.

I for one appreciate you being around and hope that you can see that none of this is meant personally.

8 Likes

@pailhead and well said @looeee I also appreciate you being around as well! I see you in Github and Stackoverflow + here and also participating on many topics. You are doing fine from what I’ve been observing.

Like yourself I’m also on the journey to engage within the community more!

3 Likes

Hey guys,

A lot of these issues come from the fact that I have not been able to make the project sustainable. I’ve been in brute force mode since the beginning and I think it’s the price I have to pay in order to not end up with an unmaintainable mess.

I am actively working on getting all this more manageable. My approach so far has been trying to get Mozilla, Google and others to sponsor contributors. It’s starting to work.

Every day I go through new PRs merging the ones that do not create side effects or add more code that will need maintenance. @pailhead’s PRs require me to think all the consequences such a change can have and whether I’m ready to maintain such API. Not every day I have enough energies to dive into these kind of problems. I’m not ignoring them though, they go to the list of hard-to-deal-with PRs :sweat_smile:

As per @looeee PRs, that’s my designer brain kicking in (kind of embarrassing). Basically the PRs are good to go (I’m referring to the BinaryLoader removal ones), but if I merge them I would like to have time after to make them look prettier. It’s hard to communicate via github discussion the changes to make a example prettier.

The problem is that I’m trying to add WebXR support at the same time. It’s hard to do everything.

Things are getting better though!

14 Likes

Thank you for the 2 cents. I wonder if there are additional mechanisms that can help us manage the project better. Maybe smaller chunks could warrant a road map. (Controls, loaders, core, etc)? Right now there’s a global one while some modules seem to have it but it’s tribal knowledge. The GitHub issues do for the most part take care of this but it’s easy to get lost and miss things.

2 Likes

I completely understand how you are feeling. Spending days (or even weeks) of your time coding/writing a proposal that you think will benefit the project and the community, only to be (seemingly) ignored. And arguing thoroughly for the proposal and anticipating criticism/side-effects, even when intended to spare time in the longer run, only seems to count negatively. It is really frustrating, and easy to take personally.

I am happy to see that big contributors assure you (us) that it is not personal, and that limited time is the problem. I don’t think it is useful to criticize anyone for answering stupid SO questions, as it is not guaranteed that the same time could be spent evaluating a complex PR. (Stupid SO questions can be answered while half-asleep. Complex PRs cannot.)

It has! I have started using:

<details><summary>TL;DR</summary> blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah...blahblahblahblahblahblahblahblahblah.</details>
TL;DR blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah...blahblahblahblahblahblahblahblahblah.

No criticism received for that yet, but no big results with my PRs either. It is encouraging to see @mrdoob give a proper explanation above, and I can only hope that some of my PRs are also on his list of not forgotten stuff. :slight_smile:

2 Likes

While I haven’t created any pull requests for either three.js or other open source repositories, I can sort of relate to what you’re saying about how your perceived lack of recognition/response for your work affects how you feel. There’s been a bit of talk in the media about how likes/dislikes on social media affect how people think of themselves, and in the case of GitHub, I found that while I don’t care about stars, I do care when I notice that somebody that has starred my repository has unstarred it. It’s only happened two times, and I feel silly for keeping count, but my oh my did it make me feel like crap. I wish I could just hide the freaking star counter, but given that option doesn’t yet exist, I’ve simply tried to work on making sure that my sense of self-worth as a developer stems from the joy that developing provides me with, as opposed to how other developers rate me, and that angle of approach has indeed helped me feel better about my work and myself.

I should mention that what I’ve shared above probably has a lot to do with being able to say that I wrote my first hello world program ever only three years ago, and that fact combined with a tendency to feel insecure has led me to feel like I’m an imposter… As if though people who do tell me my work is great must have missed something, or otherwise they wouldn’t be giving me any credit.

In the end, I don’t think you should be asking the community how you can change to be a better contributor, but rather make peace with the fact that you are you and that your sense of self-worth starts and ends there.

4 Likes