Commit Graph

16 Commits (59a236f33a6cfe4c8a5cde9a53bcc4459e62282d)

Author SHA1 Message Date
Sofus Albert Høgsbro Rose 59a236f33a
packaging: Initialize virtual 'rye' project. 2024-03-14 13:37:30 +01:00
Sofus Albert Høgsbro Rose e6e7b88959 docs: Added README.md and LICENSE 2024-03-14 12:33:49 +01:00
Sofus Albert Høgsbro Rose 5be3e20e99 feat: Demo-grade simulation feedback loop. 2024-03-13 19:10:54 +01:00
Sofus Albert Høgsbro Rose a19403acf7 feat: Continue to add features.
See README.md.
2024-03-12 09:01:50 +01:00
Sofus Albert Høgsbro Rose 6912344aaf refactor: Continuing large-scale alterations.
The big news is that GeoNodes Structure is now implemented,
under the new and vastly more robust chaining system.

Upload to Tidy3D cloud is tested. Next is Monitors!
2024-03-11 16:35:41 +01:00
Sofus Albert Høgsbro Rose 4c207b96e0 refactor: Massive architectural changes.
See README.md for new, semi-finalized TODO list.
2024-03-10 11:56:37 +01:00
Sofus Albert Høgsbro Rose 28e6760dfb feat: Various features (some very prototype).
It's very prototype-y. Cleanup pending.
2024-02-26 16:16:06 +01:00
Sofus Albert Høgsbro Rose 0f1465768b feat: We did it, GeoNodes node w/live update!
We also implemented the TriMesh node, and established a strong
convention for updating nodes from sockets via. socket superclass
method. `trigger_updates`. It should be triggered as the
`update=` callback on **ALL PROPERTIES IN ALL SOCKETS**. This
method in turn calls the nodal `update()` function, which in turn
causes the node to chain-update all nodes linked to any output socket.

By default, `update()` is `pass`, so performance shouldn't be a concern,
but we should think about this deeper at some point.

Because update-chaining is done, we're ready for preview toggles on
node outputs. A lot of exciting things to do now!
2024-02-20 13:16:23 +01:00
Sofus Albert Høgsbro Rose a06d87acc7 feat: More sockets, nodes, fixes.
We're starting to have a very advanced socket-based language
for defining nodes. It's very practical already.

The priorities are
1. All the nodes!
2. Sockets, including default values, as needed.
3. Library constants, mediums.
4. Output socket previews w/geonodes, geonodes structures.
5. Utilities including arrays (and selected array multi-input)

The code is still very spaghetti. This is very much still the
"first, make it run" part of the system design.
2024-02-19 18:36:16 +01:00
Sofus Albert Høgsbro Rose bf100843cd feat: Added accel socket, fixed default units. 2024-02-19 16:03:32 +01:00
Sofus Albert Høgsbro Rose 43414f469a feat: Custom units, def. all SocketType units. 2024-02-19 15:58:39 +01:00
Sofus Albert Høgsbro Rose 2e7d50d345 feat: Registered all nodes.
Also added several features including dynamic sockets
in nodes, abstracted units for sockets, and more.
2024-02-19 14:28:35 +01:00
Sofus Albert Høgsbro Rose 00b89dcd04 docs: Revised the node/socket plan. 2024-02-16 13:17:09 +01:00
Sofus Albert Høgsbro Rose 29c098a0c1 refactor: Far more well-functioning baseline. 2024-02-14 12:33:40 +01:00
Sofus Albert Høgsbro Rose bda734b56a refactor: Big categories, structure change.
We're back down to a single working node, but this was a very practical
refactor.
In general, very good progress towards making #2 easy to fulfill in
its entirety.

Bugs remain:

- Category discovery has big code smells and needs smoothing. Blender
  complains especially about wanting `_MT_` prefix/suffix on node
category submenu types. There's also a piece of registration logic in
category.py (big no no).
- I'd love to pass a `ruff`/`mypy` run before doubling down on node
  creation, especially to help manage the complex pieces of MP logic.
- Still needs socket-bound unit-awareness feat. sympy units, before
  doubling down on a data flow convention.
- Dependency management should also be smoothed out wrt. the user
  experience, with cached directories exposed in addon preferences.
2024-02-10 17:59:16 +01:00
Sofus Albert Høgsbro Rose 63270857ae feat: Somewhat working addon.
Solved a lot of problems related to bundled Python environment flushing
for reloading. However, we have a really solid framework for computing
node trees, and we can now both construct Tidy3D objects and noodle
them into the "Debug Printer". Next step is rote implementation of
relevant nodes, then live-visualization of the simulation setup.

See #2 for progress tracking.
2024-02-06 21:44:43 +01:00