PySdfScad
daisyui
PySdfScad | daisyui | |
---|---|---|
6 | 248 | |
16 | 30,810 | |
- | - | |
10.0 | 9.8 | |
about 1 year ago | 5 days ago | |
OpenSCAD | Svelte | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PySdfScad
-
CAD Sketcher, free and open-source project bringing CAD like tools to Blender3d
> To clarify, can this method be used as a fully functional replacement to BREP for a mechanical (machine design) CAD system?
I think so, but there are some open problems. Also it depends on the senior people. Inigo Quilez is a world class expert in this domain, and for the most part we're copying his work, get him on board and you'll be golden.
Fundamentally it makes sense, BREP is about representing boundaries and you can definitely use SDFs to represent the area under a boundary (infinite SDFs are possible, although obviously you can't turn them in to a mesh). Enclose a volume with boundaries and you can mesh that out just fine. A bit different from CSG-based SDFs, but entirely plausible.
>what approach would you recommend?
If I was to do this I'd take the constraint solver from solvespace (same one used in this post) and start using it to generate SDFs. At that point you're already 80% of the way to your end goal.
I mean if I was personally to do this I'd start by making a system that implements everything openscad can do, try to get some funding going, and than add in a solvespace based workbench for doing 2D cad that you can import into an openscad-ish language. You can see my efforts here: https://github.com/traverseda/PySdfScad
That's tackling it from a different angle than BREP though. I think that openscad but better is a surprisingly viable thing though, especially if you use it to do things like generate the gears/screws/whatever you import into your BREP based CAD project. Use scriptable CAD as the underpinning for more advances CAD.
> How long would you estimate it would take for three full time senior developers to get a useful system out?
Well define "useful"? Honestly I think you can get 80% done in under a month. I built the first pysdfscad in a week or two and replicated 80% of openscad's features. Fogleman built the library I used for pysdfscad in under a month.
I'd expect something pretty good in under a year at that kind of rate. There would be some outstanding problems, like it would be a challenge to figure out how to apply a fillet/chamfer to an edge, but not an insurmountable challenge. Geometry import is another place where you're going to spend a lot of time/money but is very important.
So let's say two or three years with three very competent seniors working on it to get a pretty good CAD program, with a GUI.
- I created an openscad interpreter that supports chamfers and fillets
- Show HN: PySdfScad,an openSCAD interpretor using signed-distance-functions
- Show HN: PySdfScad, my early work on an openscad interpretor with fillets
-
Ask HN: What would be your stack if you are building an MVP today?
Depends on exactly what I'm making, the answer is probably different if I'm making like a chat app or something more data centric.
For something really minimal, an internal tool, I'd probably use grist. Grist is a "no code" spreadsheet program that is open source and works on a relational database. I just threw together an inventory management system for my weekly dnd group in a few minutes, and I've shared it with the group. I find the relational mindset grist uses a lot easier to reason about than traditional spreadsheets.
The next level up would be django with htmx. Very minimal javascript, I might embed a javascript "applet" like a map into it if needed. This covers 99% of data driven apps.
If I wanted to build something like say discord I'd probably use a pretty similar stack for the MVP, but with server-sent-events (htmx with server sent events is nice) and web components for more complicated interactions. That's probably why I'm not in charge for building complicated single page webapps with a lot of interdependent state though. I maintain this approach should work but haven't had a real chance to test it in the wild.
If I'm writing CAD software I'm probably going with QT/python/(numpy/jax/compute-shaders/sympy/etc). Python might not be the fastest, but when you're accelerating it with one of those machine learning libraries it can be really powerful. I've actually been working on something CAD-ish using that stack here: https://github.com/traverseda/PySdfScad
That's probably roughly the same stack I'd use for things like computer vision, machine learning, etc. Ironically anything where performance is important I'd probably choose python over a compiled language.
Mind you the QT python documentation is really not great, for a really minimal MVP I might swap qt out for pyimgui which is amazing for rapid prototyping but is going to be a real pain to do things like syntax highlight a text editor or embed HTML content.
Embedded electronics? Probably micropython on an ESP32 for an MVP. A REPL on your microcontroller is really nice. Robotics I'd probably use buildroot to build a custom linux distro.
I don't have much experience with mobile development, so I'd probably end up using QT with python and pyqtdeploy, but that's not an approach I'd recommend anyone else follow. I'm keeping an eye on Tauri in that space, although I really wish they made it easier to bundle in things that aren't single page javascript web apps (like a python application).
So yeah, mostly I'd use python. Master of some trades, jack of a bunch of others, it's flexible and powerful enough that I feel happy to have specialized in it, even if deploying apps to end users can be finicky and annoying. I'd avoid the javascript ecosystem as much as possible, and where I'd have to use javascript I'd prefer to make self-contained web components.
- GitHub - traverseda/PySdfScad: Openscad interpretor written in python and using signed-distance-functions
daisyui
-
HTML-first, framework-agnostic implementation of shadcn/UI – franken/UI
DaisyUI offers zero-JS components
https://daisyui.com/
I used it for a small form + search result list recently and it works well enough for simple / static stuff.
But I think I'll still be reaching for a JS lib first since I'd miss things like inputs-with-autocomplete too much.
- Show HN: Open Source TailwindCSS UI Components
-
How to use Tailwind with any CSS framework
Tailwind is great, but creating everything from scratch is annoying. A nice base of components which can be extended with tailwind would be great. There are a few tailwind frameworks like Flowbite, Daisy Ui, but I like Bulma, PicoCSS and Bootstrap.
- Ask HN: Freelance website builders/maintainers, what's in your 2024 toolkit?
-
Building a Fast, Efficient Web App: The Technology Stack of PromptSmithy Explained
While I have experience with Tailwind and frontend development, I don’t really have the patience to use it. I usually end up using something like Mantine, which is a complete component library UI kit, or Daisy UI, which is a component library built on top of Tailwind. Shadcn/ui is quite similar to Daisy in this sense, but being able to customize the individual components, since they get installed to your components folder, made development more streamlined and more customizable. On top of that being able to change my components style with natural language thanks to v0 made development super easy and fast. Shadcn may be too minimalist of a style for some, but thanks to all the components being local, you can customize them quickly and easily!
-
The Bulma CSS framework reaches 1.0
https://daisyui.com is a really great middle ground—you can move as fast as you would in Bulma, then drop down into the weeds with TW if you need it.
-
Tailwind Color Palette Generator
If you're looking for grab and go components, Daisy UI or Flowbite might be more your speed, I've used both with minimal headache.
https://daisyui.com/
-
DaisyUI + Alpine.js + Codehooks.io - the simple web app trio
This guide is tailored for front-end developers looking to explore the smooth integration of DaisyUI's stylish components, Alpine.js's minimalist reactive framework, and the straightforward back-end capabilities of Codehooks.io.
- DaisyUI: The most popular component library for Tailwind CSS
-
Shadcn: Beautifully designed components that you can copy-paste into your apps
Others:
- https://daisyui.com/
What are some alternatives?
manifold - Geometry library for topological robustness
flowbite - Open-source UI component library and front-end development framework based on Tailwind CSS
SolveSpace-Daily-Engineering - app4soft's engineering experiments in SolveSpace — FLOSS parametric 2D/3D CAD & CAE (.slvs files repository) Follow ➡ https://twitter.com/search?q=solvespace+from%3Aapp4soft
headlessui - Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
supabase - The open source Firebase alternative.
shadcn/ui - Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
deno - A modern runtime for JavaScript and TypeScript.
Material UI - Ready-to-use foundational React components, free forever. It includes Material UI, which implements Google's Material Design.
jetstream - Tailwind scaffolding for the Laravel framework.
theme-change - Change CSS theme with toggle, buttons or select using CSS custom properties and localStorage
redwood - The App Framework for Startups
fullcalendar - Full-sized drag & drop event calendar in JavaScript