Commit Graph

78 Commits (af358a4d32210bfe0bf1b58cd21d1718df914f15)

Author SHA1 Message Date
Sofus Albert Høgsbro Rose 269af4ba32
refactor: Ran lint fix 2024-04-15 17:49:53 +02:00
Sofus Albert Høgsbro Rose b5a4b6b0a1
refactor: Common SocketDef owner in `sockets.base` 2024-04-15 17:48:29 +02:00
Sofus Albert Høgsbro Rose 4f6bd8e990
refactor: Revamped serialization (non-working) 2024-04-15 17:46:31 +02:00
Sofus Albert Høgsbro Rose 3def85e24f
refactor: Non-working first-move of serialization logic 2024-04-15 15:21:13 +02:00
Sofus Albert Høgsbro Rose e1f11f6d68
fix: Revalidated cache logic w/KeyedCache.
This especially involved fixing the invalidation logic in
`trigger_action`.
It should now be far more accurate, concise, and performant.

The invalidation check ought still be optimized.
The reason this isn't trivial is because of the loose sockets:
To use our new `@keyed_cache` on a function like `_should_recompute_output_socket`, the loose
socket would also need to do an appropriate invalidation.

Such caching without accounting for invalidation on loose-socket change
would be incorrect.
For now, it seems as though performance is quite good, although it is
unknown whether this will scale to large graphs.

We've also left `kind`-specific invalidation alone for now (maybe
forever).
2024-04-15 15:12:29 +02:00
Sofus Albert Høgsbro Rose 7f2bd2e752
fix: A bug and a crash.
The crash: When a linked loose socket was deleted, the link remained in the
NodeLinkCache, and caused a crash when trying to ask the already-deleted
socket for removal consent. We fixed this by reporting all socket
removals to the node tree, so that links could be correctly removed
independently of link-change calculation.

The bug: The collection getter was cached improperly; Blender ID types
can't just be saved like that. We need to search every time. Performance
seems unaffected at first glance.
2024-04-12 15:58:07 +02:00
Sofus Albert Høgsbro Rose 480679a3c0
refactor: Streamlined graph-update semantics. 2024-04-12 15:39:13 +02:00
Sofus Albert Høgsbro Rose dc76ab7688
fix: Various critical fixes, field preview 2024-04-10 10:46:55 +02:00
Sofus Albert Høgsbro Rose 1d90f9ca7c
fix: Case-insensitive constants search 2024-04-09 10:43:28 +02:00
Sofus Albert Høgsbro Rose 56abb3fb46
feat: Scientific constant node. 2024-04-09 10:37:50 +02:00
Sofus Albert Høgsbro Rose a75f697acd
feat: Robust DataFlowKind w/lazy structures.
This is essential for:
- Representing ranges as bounds
- Arbitrary symbolic/numeric representation of spectral distributions
- Parametric representation and JIT of critical-path procedures.

Unfortunately this broke a lot of nodes in small ways.
Next step is to finish the low-hanging fruit nodes + fix the ones we
have.
2024-04-09 08:50:32 +02:00
Sofus Albert Høgsbro Rose 54dc46290a
feat: Implemented fit of experim. medium data.
It's only good for dispersive media; specifically, a text file with
three floats per line: 'wl n k'.
A custom script was used to convert Maxim's data.

It's very fast, and has a ton of options.
Only the most important are exposed in the node for now.

A bug in MPL plotting aspect ratio declaration on MPL axis object was
fixed by manually running `set_aspect('auto')` after the fact.
It shouldn't do anything, and it doesn't, other than fix the bug :)

Also brought the plotting function of the viewer to parity with
the 3D preview, so the "Auto Plot" button works as expected.
2024-04-08 12:51:09 +02:00
Sofus Albert Høgsbro Rose fd6df15b62
feat: Added Tidy3D file import node 2024-04-08 10:50:47 +02:00
Sofus Albert Høgsbro Rose 619704c46e
feat: Better link/append strategy for GN lookup 2024-04-08 08:38:19 +02:00
Sofus Albert Høgsbro Rose 18abfd4296
docs: Quick docgen streamlining 2024-04-08 08:37:42 +02:00
Sofus Albert Høgsbro Rose 02c63e3b8f
fix: The rabid __mp_main__ segfault. 2024-04-07 18:39:27 +02:00
Sofus Albert Høgsbro Rose c2db40ca6d
fix: Broken GN unit evaluation 2024-04-03 10:13:10 +02:00
Sofus Albert Høgsbro Rose a282d1e7ef
fix: @base event callbacks now use @events 2024-04-02 20:49:57 +02:00
Sofus Albert Høgsbro Rose 01cfc61094
feat: Fixes for cloud tasks, lint run 2024-04-02 20:39:55 +02:00
Sofus Albert Høgsbro Rose 505a12fa25
fix: Bugs related to geonodes, end-of-chain unit conversion 2024-04-02 16:40:02 +02:00
Sofus Albert Høgsbro Rose e080d16893
feat: Proper visualization pathways 2024-04-01 19:28:24 +02:00
Sofus Albert Høgsbro Rose 221d5378e4
feat: ManagedObj Semantics 2024-04-01 16:48:56 +02:00
Sofus Albert Høgsbro Rose a4e764ba21
docs: Updated TODO 2024-03-22 13:51:58 +01:00
Sofus Albert Høgsbro Rose 74e79649fb
feat: Re-Implemented Unit System Node (+ other fixes) 2024-03-22 10:12:14 +01:00
Sofus Albert Høgsbro Rose 6f665b891d
feat: Working logging, before- and after-deps.
We have a far more sane approach to nodeps now, which
allows us to essentially have two loggers - one that is
very useful, pretty, and clear, but requires a 'rich'
dependency, and one that is simple.
In this spirit, we factored out services/ too.

We can also set the initial console log level now when
packing the .zip.

There's still work to do with the actual flow for deps
installing / uninstalling.
But it should be far more robust now.

Finally, we have a barebones working `quartodoc`-based docs site.
It's super clever; see <https://github.com/machow/quartodoc>.
As it's "just" a quarto project with some python autodiscovery,
fleshing it out with ex. math, images, diagrams, and so forth
should be exceptionally easy.

As we develop, various linter-guided fixes are being realized.
This will be a long process, best done as we spiff everything up
in preparation for general release.
2024-03-21 18:45:38 +01:00
Sofus Albert Høgsbro Rose 0fbf201d08
chore: Ran code formatter over all files 2024-03-20 12:56:50 +01:00
Sofus Albert Høgsbro Rose be4eec2242
feat: Completely revamped dependency system. 2024-03-20 12:55:40 +01:00
Sofus Albert Høgsbro Rose 59a236f33a
packaging: Initialize virtual 'rye' project. 2024-03-14 13:37:30 +01:00