Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have been working for a while on this library to do CAD in the browser.

The main inspiration were CadQuery and cascade studio. These are two great projects, but my needs were different.

Originally I wanted to create a browser based generator for token trays. I prefer not to have any code running on a server (so I don’t need to pay or operate them). So CadQuery was out of the picture. It needed to be in javascript.

I really liked what Cascade Studio was doing - but I wanted to create my own UI for configuring boxes - and the studio is only an integrated environment - there was no library to just make the models.

So replicad was born! You can read the docs at https://replicad.xyz/ (and play with the workbench at https://studio.replicad.xyz/workbench)



Really nice project!

I'm looking for CAD libraries for our project at bldrs.ai and have been considering replicad.

Could you describe the relationship with OpenCascade/OCJS.org and also the other projects using it. Replicad is listed on their README as one of 4 design tools using it. CascadeStudio and your project seem to be similarly targeting general use scripting. Are you in touch, with any thoughts on how to collaborate?

I'm also curious How do you see the health of OpenCascade. The last commit 8 mo ago and their issues look like it's getting difficult to build. But I understand it's also a singularly valuable open-source CAD kernel.

Thanks, any thoughts appreciated!


We are a loose group of people who interact a little bit!

The person maintaining OCJS works on in bursts - it depends on the time he has. He is doing a great job at it!

The difference between replicad and Cascade Studio is that replicad is a library first - that you can include in your specific project. As a proof of concept I built a development environment while Cascade Studio is meant as a development environment first. Different aims with different tradeoffs.

People around code cad have been interacting a bit in the CadHub discord - but it is a bit quieter lately!


Thanks!

Yes, joined CadHub last year but yeah, a little quiet. I'll say hi again


The UI is gorgeous and buttery smooth on my Windows machine. Very impressive.

In the docs, the example pages have a nice 'configuration' dropdown. Again, this is very nice and I can see a bunch of 3D printing websites adopting this as a library. I mean, how many times have you seen a model that just needs a slight tweak to be perfect, but there is just too much friction (download, unpack, load, modify, resave, reupload).

On another note, I wonder if I can train a small LLM to the docs. Once trained, I would be able to have a conversation to create some really cool geometry. Hmmm...


Truly impressive work. Any recommendations for getting started working with the OpenCascade kernel?


I could not find any great documentation. I mostly learnt by reading CadQuery's code and implementing in Typescript.

Once you get how it works googling the name of the OC methods helps sometimes. But there is not much around.


This is fantastic, thank you for your work! I'm excited to see this project combine a clean API in a popular language, with a fast online playground that requires no installation. Having played with OpenSCAD and CadQuery in the past, this feels like a big step forward.

Some suggestions (I'm sure you've already thought of most of these):

- It would be great to have notebook-like UI to isolate steps and allow faster partial rebuilds.

- live editing is great, but it'd be nice to automatically stop in-progress rebuild if another edit is made while it's computing. Right now it seems to always let a rebuild complete even if it's already out-of-date.

- Search on API/docs page would be really handy

- Face/vertex filtering API looks cleaner than CadQuery's, and I'm excited to try it out. In a lot of cases I would still really like to just be able to click on the model and get a reference in code. Even if it's just an index that would break if topology has changed. Auto-generating stable references/filters would be even better, when possible.


> - It would be great to have notebook-like UI to isolate steps and allow faster partial rebuilds.

Great idea, I have done something in that spirit integrating with natto.dev, but something more like a repl might be nice as well (https://natto.dev/@sgenoud/e2ade00d1fb4406abe78061e7f9a959b)

> - Search on API/docs page would be really handy

Good point, I use docusaurus, there is an algolia integration, I will look into it!

> Even if it's just an index that would break if topology has changed. Auto-generating stable references/filters would be even better, when possible.

Definitely the reference should be easy to implement, the stable one... less so.

I have tried to implement a filtering method inspired by cad query but which did not invent its own DSL. Always interested in feedback!


Are you by any chance part of the custom ergonomic keyboard community? I can see this being incredibly useful in replacing a bunch of existing work to programatically generate parameterised custom 3d-printable keyboard cases, currently done in Clojure/OpenSCAD/Blenderpy etc.. Currently the REPL workflow and toolchain for most such designs is way too long, and I can really see that use case driving adoption of your library.

How hard would it be to make your workbench pull and render code from GitHub repositories, so that for example, authors can link to a render of the codebase in their readme?

This is really great work btw. A pleasure to tinker with. Following closely.


> How hard would it be to make your workbench pull and render code from GitHub repositories, so that for example, authors can link to a render of the codebase in their readme?

You can already do some of this. Either by pointing to an encoded url (something like this: https://studio.replicad.xyz/workbench?from-url=https%253A%25...).

There is also a share arrow which will put the current code in an url param (and you can have something like this: https://studio.replicad.xyz/workbench?code=UEsDBAoAAAAIANhzV...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: