I'm working on porting KiCad to the browser. It's a lot of sweat and tears, multithreading issues and some more sweat. I've updated a port of WxWidgets and now I support all the features KiCad needs with ~200 tests.
Right now I have a build that loads in the browser, but I really want to have "multithreading" which means workers in the web. One can use asyncify with emscripten to translate blocking C++ to WASM, but that transition is not perfect, right now I'm debugging a bug where there's a race condition that halts all execution and the main thread runs in an infinite loop waiting for the workers to stand up. I guess I'll have a few of those ahead.
The main goal is to 1. just have fun 2. use yjs as a collab backend so multiple people can edit the same PCB. This will probably work with pcbnew, KiCad's layout editor, since it has a plugin system and AFAIK I can do the sync layer there. For the rest ( schematic, component editor etc. ) I'll have to figure out something..
KiCad does not sync automatically if you modify a file, I'll have to do some lifting there.
Anyway, it's a lot of fun, I really want this thing to exist, I'm hoping that I won't run into a "wellll, this is just not going to work" kind of issue in the end.
I just finished a dsn parser and now I am planning to write a pcb router. All in rust. The plan is to have a wasm/wasi version as well so routing is possible in the browser.
SEEKING WORK | Location: EU/Hungary | Remote: Yes | Willing to relocate: No Technologies: React, Node, Kubernetes, Scala, ProseMirror, Postgres, Firebase, AWS, Supabase Résumé/CV: https://emergence-engineering.com
Email: [email protected]
Hey! We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good junior-medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good junior-medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
SEEKING WORK | Location: EU/Hungary | Remote: Yes | Willing to relocate: No Technologies: React, Node, Kubernetes, Scala, ProseMirror, Postgres, Firebase, AWS, Supabase Résumé/CV: https://emergence-engineering.com
Email: [email protected]
Hey! We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
SEEKING WORK | Location: EU/Hungary | Remote: Yes | Willing to relocate: No Technologies: React, Node, Kubernetes, Scala, ProseMirror, Postgres, Firebase, AWS, Supabase Résumé/CV: https://emergence-engineering.com
Email: [email protected]
Hey! We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good junior-medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good junior-medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
Location: EU/Hungary Remote: Yes Willing to relocate: No Technologies: React, Node, Kubernetes, Scala, ProseMirror, Postgres, Firebase, AWS Résumé/CV: https://emergence-engineering.com Email: [email protected] Hey! We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is: - React / Node / Embedded senior dev ( me )
- Scala / React / Node / Blockchain / GPT / Kubernetes / DevOps senior dev
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
Location: EU/Hungary Remote: Yes Willing to relocate: No Technologies: React, Node, Kubernetes, Scala, ProseMirror, Postgres, Firebase, AWS Résumé/CV: https://emergence-engineering.com Email: [email protected] Hey! We’re Emergence Engineering, a small-ish dev shop from the EU. Part of our team is looking for work, we’ve been working for US & UK based startups for a while now. Our team is:
- React / Node / Embedded senior dev ( me )
- Two devs with deep React / Node knowledge between mid and senior level
- Two very good medior devs with React knowledge
We look for a place where we can make a difference and do interesting work with a lot of responsibility, the team is well balanced meaning that we have exploring / figuring out and executing types.
Right now I have a build that loads in the browser, but I really want to have "multithreading" which means workers in the web. One can use asyncify with emscripten to translate blocking C++ to WASM, but that transition is not perfect, right now I'm debugging a bug where there's a race condition that halts all execution and the main thread runs in an infinite loop waiting for the workers to stand up. I guess I'll have a few of those ahead.
The main goal is to 1. just have fun 2. use yjs as a collab backend so multiple people can edit the same PCB. This will probably work with pcbnew, KiCad's layout editor, since it has a plugin system and AFAIK I can do the sync layer there. For the rest ( schematic, component editor etc. ) I'll have to figure out something.. KiCad does not sync automatically if you modify a file, I'll have to do some lifting there.
Anyway, it's a lot of fun, I really want this thing to exist, I'm hoping that I won't run into a "wellll, this is just not going to work" kind of issue in the end.
reply