Just checked your profile, didn't realize you were the author of PrimroseVR. Now I feel even more alone-together with you, I'm the sole developer for JanusWeb and my experience completely matches what you describe.
Pretty depressing how open source projects by individuals can at best hope to "inspire" devs at FAANG companies to just do the same thing and then use their company's immense resources and developer relation teams to promote their project over the ones that existed before them. I wonder how many talented devs have had this happen to them only to give up and stop trying.
LOL, thanks. I tend to think the only reason Primrose had any attention was because it was the only complete framework for WebVR in the browser at the time. I remember using JanusVR in 2014 at a VR meetup on someone's DK2 and really liking it. But all I had at home was a smartphone in a cardboard box that I had hacked together myself shortly after seeing the Google Cardboard announcement. I only got a DK2 after Tojiro started releasing his WebVR builds of Chromium, then got lucky that my design was similar enough to his early WebVR API design that the port only took a day.
Primrose existed for a year before A-Frame came out. And overnight, I somehow became the copycat. In the second year, I even saw claims I was copying ReactVR.
Incidentally, way early on, I had been planning to extend Primrose to run in JanusVR. But after the third year, I just couldn't get past the burnout and was getting professional dev work only for Unity. So here I am now, I'm the head of VR at a foreign language instruction company, where I'm working exclusively in Unity. I have a new framework I call Juniper, but I haven't really told anyone about it because I just don't care anymore. It's good enough that it's just for me. It's open on Github, and if someone stumbles on it, that's ok, but otherwise I'd rather focus on working for money than working for criticism on HN.
Yup, very similar story here. I'd been working on a WebGL engine called Elation Engine since 2011, and when VR hit the scene, I quickly added support for barrel shader and WebSocket tracking, then when WebVR was a thing added support for that as well. Those times were exciting, it felt like indies and hackers were driving the technology, and the possibilities were endless.
I joined Janus in 2016, after Facebook bought my previous employer and fired my team. I'd added support for loading Janus worlds within my engine, which opened it up to normal web browsers, and the team at Janus was excited for the possibilities. It was a great story of how I was able to turn an open source project into a paying job, and people were EXCITED about what we were building! We had investors and users, everything was great!
Fast forward to today. The team is broken and burnt out. Many left when we couldn't secure another round of funding and the paychecks dried up. The code is in a poor state because we kept chasing what platform gatekeepers and potential investors told us THEY wanted to see. The founder and myself both had kids within a month of each other and can no longer work like we used to. One guy's wife left him because he was spending so much time travelling and promoting the project. We have less users than ever, despite our tech being years ahead of what people think is possible. We still pretend like we're a normal healthy happy company, because we still believe in the idea and nobody's going to invest in a company of depressed burnt out people. But now even that fantasy is unsustainable, it's probably time to just give up and get a regular old job.
Of course success was never guaranteed, but what we didn't expect was how we'd just end up shunned and ignored. When A-Frame first launched, they listed Janus as an inspiration, but once they reached some level of success and saw us as competitors, they wrote us out of that history book - literally just removed us from the list of inspirations, but kept other projects like SceneVR (whose author also credits Janus as his inspiration). We've got literally thousands of interconnected worlds people have built which nobody visits or links to, but if someone makes a similar world with A-Frame or Babylon, we're sure to hear all about how great and new and innovative it is.
Modern open source is not the same scene it used to be. I don't know what's next. It's pretty depressing.
I just don't talk about my stuff online that much anymore. I'm still excited by VR, probably more so now than ever now that I have a great job where people really appreciate me. I can do so much better work now. I can actually look at my GitHub commit records and see the timeline.
I try (and often fail) to remember the 90/9/1 rule of online communities. 90% of people are only lurkers. The next 90% (9% of total) of people only comment. It's only 1% of people that create things. It's why I have retreated from taking about my projects online. Literally 99% of the people looking at your project have no idea what it's like to build something.
Stay in touch. You can find my contact info on my website. I might need help in the future.
I wonder if Linus Torvalds--without the name recognition--would be able to release Linux today? His first posts about it were met with some complaints about "GNU Herd will be here any day", but despite being super primitive, he somehow still got enough people on board to become a self-sustaining project.
Hell, I wonder if anyone other than Google, Apple, or Microsoft could successfully release a brand new operating system today. Everything seems to be about consolidation to a single norm of "like Linux". Where did the diversity of tech go?
I remember in the 90's you could publish anything and people would try it out because boredom I guess. Now there is so much to choose from. But I think its still possible if you find a good channel. Literally an IRC channel or niche forum where you will find your first users. Before starting a project, ask yourself who will be the first users and where do I find them.
My first user is always myself. I write code to make my work easier. It grows over time and then I start thinking others might also find it helps them with similar work.
Also allow yourself a budget and to search for an existing solution. If you are gonna spend 100 hours on something, a couple of thousand dollars is not that much if you can just buy an already existing solution. For example, I wanted a feature in my text/code editor, and the only product that had that feature cost 1000/month, I thought that was too much so I spent several hundred hours creating my own editor ... And of course no one is interested in my editor besides myself. That's a lot of opportunity cost, time that I could have spent doing something else.
It's ironic that so many people here are complaining about their solo projects not gaining traction, but nobody seems to want to pitch into somebody else's project and make it their own. Please don't take it personally, I simply noted a pattern and the fact that I'm writing this on your comment in particular is just random chance.
In your example, why would you start yet another editor? There are hundreds, possibly thousands, already out there. Instead of writing your own, you could have taken the one that's popular and closest to what you want, and started to change it to fit your needs (or written a plugin, if the editor allowed for it).
One of my own favourite experiences with open source development was when I basically revived an existing project by starting to make contributions to it, which then pulled the original creator back in and ultimately others as well.
In my case I couldn't actually find any project I could contribute to, until after I had the editor I wanted. But similar projects kept popping up, some backed my big corp.
I thought about abandoning my own editor and implement the features I needed in any of the similar projects, but I didn't like the architecture and they where made in languages that I didn't like. My editor also was ahead. Although it did not take long until the other projects surpassed my editor in capabilities. I have also later found many projects like mine that are now abandoned. It's very ironic indeed. I kept working on it hoping that I could pivot and find market fit to make some money off it, but it seems dead impossible. And at the same time similar projects are backed by investors.
Out of curiosity, was this a web text editor? It's difficult to imagine that you'd be able to be ahead of real native text editors with a solo project.
Text rendering is extremely hard, but there already exist optimized libraries with hardware acceleration. Web browsers in particular have very optimized text rendering engines. It's still slow, but it's faster then for example terminal based text rendering. The bottleneck in text rendering is not rendering per see, but actually putting the pixels onto the screen. Browsers have a disadvantage compared to native because of complex rendering pipeline, while native have more low level access. I for example tried to make a bitmap text renderer to see if it could be made any faster, but it was much slower then existing rendering API's - that's how optimized they are. Yet they are still slow. Rendering a full screen of text takes around one millisecond.
That's however well into the 60 times per second refresh time budget, which lets you spend the rest of the time budget doing stupid things like parsing the whole document on every key stroke.
Oooooh yeeeaah, there it is. I was waiting for the ol' "don't reinvent the wheel".
I'm just so dead tired of this argument. Why doesn't Mozilla give up on Firefox and just start contributing to Chromium? Why is Preact a thing when you could just contribute to React? Why do Grunt and Gulp exist, or WebPack vs Rollup?
In my case, on many occasions, the thing I needed just didn't exist, in any form. Other cases, the thing I needed existed, but was poorly-written, or wouldn't integrate into my existing system.
I'm just tired of the fundamental assumption from people arguing in these threads being "you didn't do your due diligence". You don't know the history of our projects, yet you come in here and tell us "you're doing it wrong".
And this argument is so often used to ignore the work of solo-devs, yet completely get on board with big-name companies.
I've literally had people tell me that I shouldn't have built Primrose, I should have contributed to A-Frame. A-Frame wouldn't exist for a whole year when I made Primrose. Was I supposed to just sit on my ass for a year and wait for "my betters" to make something that suited my needs?
I've written my own text editor, too. Because there were no syntax-highlighting text editors that drew to HTML5 Canvases, which is what I needed to get code editing in WebVR to work.
I've written my own ORM. Because at the time, there were no light-weight ORMs that were driven by the database schema for .NET. Microsoft didn't release Entity Framework for more than TWO years after I wrote my ORM.
I'm currently writing my own VR/AR abstraction layer, because I don't like VRTK (it was legitimately junk when I first started, though I've been told it is better now, though it's not clear how) and Unity's cross-platform XR system (which also didn't exist when I started, and is also junk).
I don't begrudge Mozilla making A-Frame. I completely understand that businesses are not going to want to play in someone else's backyard. But when I have a business doing something and I make the same decisions, I get replies from "the community" like yours. I begrudge people like you who have made FOSS into a cult of the giganto-corp.
Why is the oneous on solo-devs to contribute? Where were the people telling Facebook to fix Angular instead of making React?
I think you're barking up the wrong tree here. Context is king, so please don't just make the worst possible assumptions about context.
I actually agree with you about most points, but the example was about text editors (and my possibly incorrect assumption was that this was about native text editors, not web abominations). There are plenty of those that are being developed already by solo devs, or at least noncommercially by communities. Contributing to those should be the default path unless there are very good reasons pointing in the other direction.
Of course the fear is that you spend a few thousand dollars on a potential solution, use it for a few months only to discover that it does only about 60% of what you really need and/or it's painful/difficult to use. So now you're either stuck with a substandard solution, or you are going to do the work yourself anyway, and are out the few thousand dollars besides.
We are all alone together.