There's a bit of eternally recurring FOSS discourse that a project just isn't simply open enough, because too much is done by one person without input from The Community, or they didn't involve The Community from the start, etc. I just think that's funny because the vast majority of FOSS projects have just one person working on them, I think even if you exclude quick sketches and such it's still true.

Follow

In the idk 12+ years I've been trying and mostly failing to get various FOSS projects off the ground and actively recruit people to help with the heavy lifting, I've come to appreciate that there's a skill here I don't have. I think at best I've had two other people contributing code at the same time.

I think what has generally worked best is posting frequently about the project in another community's discord. Posting on twitter and presenting about projects at conferences had mixed results, but mostly led to other opportunities. It remains to be seen how different Mastodon is from twitter in this regard, but I imagine it's mostly similar.

@aeva I don't understand that viewpoint, it's hard to contribute code, always
if you think you have code to contribute just make a fukn PR, it's not that hard

@efi contributions aren't just code though. In Tangerine there's a lot of code that is hard to contribute to because the theory behind it is an area of active research, but there's also plenty that's important that doesn't require being an expert on implicit surface rendering, like the Linux port. Using a program and giving feedback is a valuable contribution, and what I'm most in need of right now, as are making stuff with it and sharing, and writing docs and tutorials.

@aeva It's really hard to build an open source community. You need people who:

1. Care about/use the project.
2. Have the right skillset to contribute to it.
3. Have adequate free time to do so.

Any person with 2 of the 3 isn't going to cut it.

I am reasonably confident I work on the best existing self-hosting platform, but it feels like a very uphill battle to convince people that it is better than wildly more popular ones, and then also wrangle people into contributing to maintaining it.

@ocdtrekkie I think you're right. I'm probably not going to find anyone who hits point 2 for Tangerine who isn't already off in the deep end working on their own implicit surface rendering research projects, so I should probably do what I can to make accessible learning resources for what I've figured out so far.

@aeva "who isn't already off in the deep end working on their own implicit surface rendering research projects"

That's the lack of point 1. If you don't have the userbase to draw from, well... developers love to create their own thing that works the way they want it to. Unless they're already in your community as a user, they probably would rather build their own thing.

@aeva Maybe there's a Goldilocks zone of care for people with the skillset to contribute: "I care about this enough to use someone's project for it, and maybe contribute to it, but I *don't* care about this enough to roll my own."

I think if we had infinite time, developers would end up writing their own bespoke everything, and the only reason we share anything at all is because nobody has time to write everything.

@ocdtrekkie I'm essentially trying to build something like the game Dreams, so my goal is that the baseline skill set needed to do anything with it a very basic understanding of Lua, and the ability to reason about the abstract composition of objects (aka the observation aspect of making art in any medium). So if I'm doing things well, point 1 should be a very low bar to clear.

@ocdtrekkie for point 2, real time graphics is a hard enough field to recruit people for when you're offering money, and Tangerine throws in an esoteric and often theoretical branch of math and computer science into the mix. I know of maybe a dozen or so people who do this stuff, and we're all super busy, so I accept that I'm probably going to have to write and maintain all of the renderer myself. There's other parts though that would benefit from outside help though.

@ocdtrekkie specifically, ports to other operating systems (Linux is mostly there, everything else is hard), and bindings for other languages (Racket and Python, needs some minor refactoring, and a lot of boilerplate). The most critical things right now are making stuff with it and giving me feedback, and expanding the documentation and tutorials.

@ocdtrekkie I think I've not been communicating any of this well at all, or to the wrong people, and so I worry that maybe people see it as my terrifying wizard tower :|

@aeva I tell people my projects are bad and not really intended to be used by others (even though I secretly hope someday they will be), and so I really can definitely blame myself for most of my projects single-user-status. ;)

@aeva But I think that yeah, if you want to build a community, you start with point 1, you need people using your project, which means:

1. It's complete enough to provide a minimum viable benefit to someone who wants to use it.
2. They have some easy way to figure out how it can solve a problem for them and fit into what they are already wanting to do.
3. ???

And then you just hope you can get enough *users* that amongst them you'll find some potential contributors.

@aeva But is anyone else trying to use it yet in their own projects? You're unlikely to have contributors until you have users.

Also: I have no idea what this is, but I starred it anyways.

@ocdtrekkie well, itch says its been downloaded about 15 times. I don't collect any telemetry from the application on a matter of principal, so I'm reliant on people complaining about bugs or sharing things they made to determine if anyone has actually used it and to what degree. There has been no feedback of any kind, so I assume that 0 to 15 people have tried to use it, got confused or frustrated, and then deleted it without saying anything.

@ocdtrekkie as for what it is, right now it's a system for building 3D models procedurally via CSG verbs, and I'm working towards getting it to a state where those models can be interactive worlds.

@ocdtrekkie and you can use it to generate meshes for stuff like 3D printing.

@ocdtrekkie essentially the niche is "I know how to program and I want to build a little house on my computer"

@aeva Don't most people who download things on Itch.io expect to get a game? I wouldn't put it past that 15 people tried your "game", and didn't have "fun" with it, since it's not really a game.

Whereas presumably this is more a developer tool which you need to get in front of game developers, right?

@ocdtrekkie I posted it in the tools category so I really hope there's no confusion about it being a game, but that's a good point. I had just assumed all of those downloads were people who got there from my posts on twitter and mastodon. If you have no context at all, the program doesn't make any sense.

@aeva I guess there's a bunch of other tools and such when I search "procedural" on Itch. I guess the question is, are you communicating how/why someone would use it?

Let's say I'm a game developer (lol, I'm not, I just have a bachelor's degree in it), and I have, I dunno some intention to build a game with Unity. (I know a bit of Unreal Engine 3, tbh, but Unity seems popular now.)

How am I going to start using this? Why?

@ocdtrekkie Well, you tell me. I think the explanation is short and to the point, but maybe I'm glossing over something that isn't obvious to someone else aeva.itch.io/tangerine

@aeva As an esteemed graduate of DeVry's Game and Simulation Programming program (lol), I have no idea what a CSG tree is, or why I want to make them. (I have since visited Wikipedia and now slightly understand, maybe?)

If I wanted to export an STL model, why wouldn't I make something in Blender?

The "What is this?" on GitHub also does not tell me what it is, except that it is math, and if I could pass Calculus, I wouldn't have picked the video game degree over engineering.

@aeva Maybe some thoughts to drive descriptions:

- What am I building/struggling with when I need your tool?
- If I don't presently know your tool exists... what I am I trying to do it with instead?
- If I'm trying to do what your tool does some other way.... why is your way a better way?
- If I want to try to use your tool then, how do I get started doing so?

Telling me you have sliced bread is not what you need to do, you have to tell me why sliced bread is better than bread any other way.

Sign in to participate in the conversation
Mastodon

The original server operated by the Mastodon gGmbH non-profit