geedy
Joined 13 years ago
Joined 13 years ago
I checked out Aetheris a while back. Congrats! These projects are tough to keep slogging on with.
To be fair, solidcore/SMLib are more mature in some ways than popkern. SMLib uses non-manifold topology for booleans, which popkern is actively working on now, and it has years of real-world use behind it, a level of hardening popkern is still working towards. solidcore builds on that as a Rust port.
On robustness, booleans, fillets, and chamfers are general in popkern, and they work well on a lot of parts, but there are known weak spots. Dense hole arrangements, near-tangent curved contacts, and fillets running into other fillets at awkward corners can still fail. My real-part test corpus is smaller than I'd like too. There are 40+ years of publications to reimplement, and that's a big part of how I'm closing the gaps.
Definitely open to collaborating. Your AP242/PMI and import-qualification work is well ahead of mine, and a shared corpus of hard parts we both run could be useful for both of us. My project socials are on popkern.dev, feel free to reach out!
The thing I'm proudest of: where several fillets of different radii meet at a corner, most kernels leave a curvature break you can see in reflections. popkern fills those corners with a certified G2 (curvature-continuous) patch, so zebra stripes flow through unbroken: https://popkern.dev/assets/img/zebra-corner.png
Other bits that might be interesting:
- Parts are short Rhai scripts. Bigger parts are folders of numbered "migration" scripts, like database migrations, so models are git-friendly and you can scrub through their history. A later step can reach back and modify an earlier feature.
- The model viewer in popkern live allows you to see into the model via a section view.
- All supported: booleans, fillets/chamfers, sweeps, revolves, lofts, shelling, constrained sketches, STEP in/out, and MCP for direct agent usage.
- When an operation can't produce a valid solid, it refuses and tells you why instead of returning something broken.
How it's built: the code is written by AI agents working from published CAGD research, under my direction. I spend a lot of my time reviewing research to identify solutions that close gaps. Every change must pass thousands of tests plus the kernel's own validity checks, and results are cross-checked against OpenCASCADE wherever the two are comparable. Happy to go deep on how that works.
What's missing: a lot, it's early. Booleans fail many tricky cases, and non-manifold topology is being built out right now. Similarly, the breadth of fillet support will grow over time, and there is much to improve with regards to surface healing. Fuzz testing for all three of these areas will be tackled soon and help harden popkern a great deal.
I hope people find it useful even this early, and I’d love to hear what breaks. Happy to answer questions.
I am a and work alongside AI native creatives every day and the decisions we make still are our own.
I decide, AI executes (mostly, far faster than I can).
Higher order continuity native to the blend would be a requirement for many, too, and the algorithms only get harder and trickier to verify correct.
I intend to open source it once fillets work real good. That will take a while, but I've made pretty good progress since I started 10 weeks ago.
Medium term goal is to release a GUI application that can be used to import STEP files and just do very high quality fillets in. Would be very useful for many hobbyists, I think.
There are a couple reasons you would go this route or classic nesrgb, and I was very tempted (I might still do a nesrgb on my other nes, if ppu digitizer goes well).
Primary one is lumacode is a digital signal that requires interpretation before it can be input into a tv. You can use the creator's rgb2hdmi which requires a raspberry Pi, or you can use a scaler like retrotink or ossc (pro). An RGB connection is standalone in many setups, and also works with scalers. If you want to interface with a CRT, lumacode doesn't immediately support that.
Additionally, ppudigitizer doesn't (directly) support multiple palletes. You are stuck with whatever your lumacode interpreter provides (though you could in theory change this yourself).
Given enough time, a virus will tend evolve to become more infectious period.
Somebody else could confirm this, but it seems to me that the current known variants of concern are not responses to vaccination.
Funny how the Hebrew and Greek words for fear have so many other meanings, and yet the church has taught but one for so long when considering the "fear of God".
Seems to contradict "perfect love casts out all fear". Perhaps we would all be better off if we understood "wisdom begins with the awe of God" as the preferred intention.
Because fear based things really suck.
And in that light:
Both science and economics are used broadly and brutally to justify a biases.
Both are ignored for their ability to measure, and used to shout over disagreements instead.
May we use both for more nuanced conversations, instead of less.
I don't love labels, but I don't think "conservatives" are simply any of those things.
This isn't an original thought, but I think they are mostly afraid of losing their community if they change their mind.
Fear of disconnection is innate and biological. When my trump supporting friends say "I believe it" to somebody suggesting that the Capitol Hill rioters were antifa pretending to be trump supporters, their lack of interest in challenging their own beliefs stems from the risk incurred with disagreeing with their friends and loved ones.
This effect is so strong that our brains give hits of dopamine whenever our beliefs are confirmed. We are not weird to change our minds.
So no. "Conservatives" aren't dumb. Just like the rest of us, they biologically afraid of social disconnection. And all that shouting across the isle makes it harder for them to see "progressives" accepting them.
Any tips for doing this during a pandemic? Beyond just the usual of treating people well?