From 5cacab2e390d658e022f7c07305be18787c3db53 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Sun, 15 Jun 2025 16:54:40 -0700 Subject: [PATCH] Instance tables refactor part 7: Rename "ImageFrame" -> "RasterData", "ImageFrameTable" -> "RasterDataType", and "RasterFrame" -> "RasterDataType" --- demo-artwork/changing-seasons.graphite | 2 +- .../document/document_message_handler.rs | 4 +- .../graph_operation_message.rs | 4 +- .../document/graph_operation/utility_types.rs | 6 +- .../node_graph/document_node_definitions.rs | 42 +++++----- .../document/node_graph/node_properties.rs | 10 +-- .../node_graph/node_properties_imaginate.rs | 4 +- .../document/node_graph/utility_types.rs | 2 +- .../portfolio/portfolio_message_handler.rs | 1 - .../spreadsheet_message_handler.rs | 19 ++++- .../graph_modification_utils.rs | 15 ++-- editor/src/node_graph_executor.rs | 2 +- node-graph/gcore/src/application_io.rs | 3 +- node-graph/gcore/src/graphic_element.rs | 76 +++++++++---------- .../gcore/src/graphic_element/renderer.rs | 44 +++++------ node-graph/gcore/src/ops.rs | 6 +- node-graph/gcore/src/raster.rs | 8 +- node-graph/gcore/src/raster/adjustments.rs | 48 ++++++------ node-graph/gcore/src/raster/image.rs | 42 +++++----- node-graph/gcore/src/transform.rs | 18 ++--- .../gcore/src/vector/algorithms/instance.rs | 6 +- node-graph/gcore/src/vector/vector_nodes.rs | 10 +-- node-graph/graph-craft/src/document/value.rs | 4 +- node-graph/gstd/src/brush.rs | 12 +-- node-graph/gstd/src/dehaze.rs | 6 +- node-graph/gstd/src/filter.rs | 8 +- node-graph/gstd/src/gpu_nodes.rs | 16 ++-- node-graph/gstd/src/image_color_palette.rs | 8 +- node-graph/gstd/src/raster.rs | 62 +++++++-------- node-graph/gstd/src/vector.rs | 8 +- node-graph/gstd/src/wasm_application_io.rs | 24 +++--- .../interpreted-executor/src/node_registry.rs | 22 +++--- node-graph/node-macro/src/parsing.rs | 16 ++-- node-graph/wgpu-executor/src/lib.rs | 8 +- 34 files changed, 285 insertions(+), 281 deletions(-) diff --git a/demo-artwork/changing-seasons.graphite b/demo-artwork/changing-seasons.graphite index eb1f75c8b7..3a36f590fb 100644 --- a/demo-artwork/changing-seasons.graphite +++ b/demo-artwork/changing-seasons.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":3143874172491239000,"output_index":0,"lambda":false}}],"nodes":[[10316247453530667000,{"inputs":[{"Node":{"node_id":9079109751490757000,"output_index":0,"lambda":false}},{"Node":{"node_id":12796400626461303056,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[7954638344846060000,{"inputs":[{"Node":{"node_id":5991296268862790000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.1875,"green":0.0,"blue":0.0,"alpha":0.203125}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.19140625,"green":0.0,"blue":0.0,"alpha":0.203125}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17021405646895729000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":1.0,"green":0.31764707,"blue":0.15686275,"alpha":1.0}],[0.5,{"red":1.0,"green":0.5686275,"blue":0.25490198,"alpha":1.0}],[1.0,{"red":1.0,"green":0.7294118,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::GradientValueNode"}},"visible":true,"skip_deduplication":false}],[8366826746721323000,{"inputs":[{"Node":{"node_id":5591755359500854000,"output_index":0,"lambda":false}},{"Node":{"node_id":13846904447064916285,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1250460246919467000,{"inputs":[{"Node":{"node_id":4742778578215475000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_std::vector::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14253625255053304000,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139],"transform":[-371.95192745983906,4.5550973740038046e-14,0.0,965.1086770605688,766.3711364618157,-61.108677060568766]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3223387122603246085,{"inputs":[{"Node":{"node_id":9641606876402405523,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"String":"2 - 0.2A"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::MathNode"}},"visible":true,"skip_deduplication":false}],[3143874172491239000,{"inputs":[{"Value":{"tagged_value":{"ArtboardGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":18233215297647862000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"IVec2":[0,0]},"exposed":false}},{"Value":{"tagged_value":{"IVec2":[2000,1000]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToArtboardNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}}]},"import_index":0}},{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::AppendArtboardNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15908863353600836000,{"inputs":[{"Node":{"node_id":7094974507355892337,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":350.0},"exposed":false}},{"Node":{"node_id":4373650744391914031,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8895289679682140000,{"inputs":[{"Node":{"node_id":213744308682803360,"output_index":0,"lambda":false}},{"Node":{"node_id":7954638344846060000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17725188707009528000,{"inputs":[{"Node":{"node_id":10316247453530667000,"output_index":0,"lambda":false}},{"Node":{"node_id":17025512774010843000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[5591755359500854000,{"inputs":[{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":1789832635968548900,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13712392741217151405,{"inputs":[{"Node":{"node_id":5348726859432207000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1789832635968548900,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17855766443650990000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.1764706,"green":0.44313726,"blue":0.05882353,"alpha":1.0}],[0.5,{"red":0.45490196,"green":0.627451,"blue":0.3254902,"alpha":1.0}],[1.0,{"red":1.0,"green":0.5529412,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::GradientValueNode"}},"visible":true,"skip_deduplication":false}],[16084834641749443000,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[1924303400883620400,{"inputs":[{"Value":{"tagged_value":{"VectorData":{"instance":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"line_cap":"Butt","line_join":"Miter","line_join_miter_limit":4.0,"transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_graphic_group":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[12399235852192450000,16255990754021933000,15620668684239604000,5432878891027338000],"remove":[5992115648840007000],"delta":[[5432878891027338000,[-0.8525377229081244,-6.779663923182397]],[12399235852192450000,[3.4492455418381667,-6.252914951989055]],[15620668684239604000,[-7.105427357601002e-15,61.89300411522633]],[16255990754021933000,[3.423868312757215,60.83950617283953]]]},"segments":{"add":[1366074222973177300,9911415907547690000,3820594103877681000,5933636287523951000],"remove":[16939395239973712000],"start_point":[[1366074222973177300,12399235852192450000],[9911415907547690000,16255990754021933000],[5933636287523951000,5432878891027338000],[3820594103877681000,15620668684239604000]],"end_point":[[3820594103877681000,5432878891027338000],[1366074222973177300,16255990754021933000],[5933636287523951000,12399235852192450000],[9911415907547690000,15620668684239604000]],"handle_primary":[[1366074222973177300,[-12.729766803840905,34.6776406035666]],[3820594103877681000,[-1.2746024488136916,-0.5300005080526233]],[5933636287523951000,[0.0,0.0]],[9911415907547690000,[-0.6380090646381761,1.00935799390129]]],"handle_end":[[3820594103877681000,[-11.281207133058956,31.692729766803836]],[9911415907547690000,[1.1025726645520375,0.4584677151070898]],[5933636287523951000,[0.0,0.0]],[1366074222973177300,[1.0502464055275982,-1.6615353350607336]]],"stroke":[[3820594103877681000,0],[5933636287523951000,0],[1366074222973177300,0],[9911415907547690000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":3820594103877681000},{"ty":"End","segment":9911415907547690000}],[{"ty":"Primary","segment":9911415907547690000},{"ty":"End","segment":1366074222973177300}]],"remove_g1_continuous":[[{"ty":"Primary","segment":1366074222973177300},{"ty":"End","segment":5933636287523951000}],[{"ty":"End","segment":3820594103877681000},{"ty":"Primary","segment":16939395239973712000}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_data::modification::VectorModification","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_data::modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2233138531352324200,{"inputs":[{"Node":{"node_id":366962978353611840,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4040070953711778000,{"inputs":[{"Node":{"node_id":15908863353600836000,"output_index":0,"lambda":false}},{"Node":{"node_id":2166474486859326700,"output_index":0,"lambda":false}},{"Node":{"node_id":10690271318666670633,"output_index":0,"lambda":false}},{"Node":{"node_id":12004715210677400127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":360.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[17025512774010843000,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.3155737704918033,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.203125}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4742778578215475000,{"inputs":[{"Node":{"node_id":6102164880094062000,"output_index":0,"lambda":false}},{"Node":{"node_id":8876924567444570473,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10463288500489480000,{"inputs":[{"Node":{"node_id":4600332392291315000,"output_index":0,"lambda":false}},{"Node":{"node_id":4040070953711778000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3602127523880426500,{"inputs":[{"Value":{"tagged_value":{"ImageFrame":{"instance":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":17725188707009528000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[6102164880094062000,{"inputs":[{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14253625255053304000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4002029424845293600,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[],"delta":[[7888691908524886000,[4.351165980795637,-8.105624142661181]],[4570709177617499000,[-62.76543209876538,-6.827160493827164]],[9664410344080632000,[-35.276890617605005,-25.55103086414088]],[15620564416450861000,[-47.66529492455423,-18.042524005486992]],[891169987742051100,[-4.148148148148122,-38.03703703703696]],[753144493519442600,[-50.013717421124845,21.17283950617286]],[11897064075526275000,[-61.65765794556601,-32.902083082000814]],[10418348123687606000,[-61.3893894663837,-52.000301612710835]],[11874978858302702000,[5.843621399176955,-10.914951989026145]],[4305429814263425000,[-22.598416051654286,-32.71009758017498]],[16211201987812043000,[-7.105427357601002e-15,-23.90123456790124]],[6358127410693457000,[-37.72290809327849,-10.54183813443079]],[353992768245212100,[-42.27413685969588,-41.62581710194484]],[4839542169175255000,[-127.45378793812174,-12.06205126188287]],[5755835744378529000,[-17.333333333333343,-33.1358024691358]],[9934671969500465000,[-43.209876543209866,-14.975308641975468]],[12582713598977278000,[9.333333333333268,-66.33333333333327]],[16594203120813726000,[-62.53607037678802,-36.02218510909459]]]},"segments":{"add":[],"remove":[],"start_point":[],"end_point":[],"handle_primary":[[4183498485018509000,[-37.13580246913581,14.485596707818928]],[2092445122112560000,[-7.308641975308667,2.9629629629629903]],[8119312711427333000,[0.0,0.0]],[15866454419016458000,[-9.913311783442964,6.121455371873111]],[4590600976245504500,[-6.49657064471878,1.2290809327846404]],[2416974091592514600,[0.0,0.0]],[12441313998107066000,[-4.938271604938336,6.518518518518476]],[14351209823603001000,[0.0,0.0]],[1562499453192082400,[-0.08779149519892826,-1.6680384087791111]],[9552874240071498000,[-5.53086419753086,-0.9657064471879552]],[18320159308706247000,[0.0,0.0]],[3270826560526153000,[-10.966434817733528,4.317749647005792]],[17948338937502876000,[0.0,0.0]],[16362428386097514000,[-23.70370370370371,19.950617283950606]],[3138315255762406000,[4.038408779149492,-14.5733882030178]],[5680639457836474000,[0.0,0.0]],[3359087961315235300,[-0.2881601545358876,-1.8891182956799923]]],"handle_end":[[3138315255762406000,[-8.098765432098759,2.947337553780912]],[17948338937502876000,[-50.30452674897121,26.776406035665325]],[8119312711427333000,[-16.241426611796967,5.355281207133061]],[3270826560526153000,[-49.33882030178324,27.10562414266127]],[3359087961315235300,[-7.813443072702299,7.725651577503442]],[4590600976245504500,[14.222222222222207,7.989026063100134]],[4183498485018509000,[-21.94787379972564,36.565157750342905]],[2416974091592514600,[37.06995884773662,-14.595336076817532]],[1562499453192082400,[-0.6668238551234532,2.406364346749864]],[5680639457836474000,[0.2881601545359018,1.8891182956799923]],[16362428386097514000,[-6.962962962962983,53.17283950617292]],[12441313998107066000,[5.171144805176233,13.506721506057374]],[18320159308706247000,[-41.26200274348419,15.978052126200277]],[15866454419016458000,[2.458161865569238,7.637860082304542]],[2092445122112560000,[-9.086419753086416,21.135802469135797]],[14351209823603001000,[-7.374485596707803,5.70644718792866]],[7709585677887591000,[-8.603566529492472,0.8779149519890552]],[9552874240071498000,[-7.286694101508885,7.55006858710567]]],"stroke":[]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_data::modification::VectorModification","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_data::modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[366962978353611840,{"inputs":[{"Node":{"node_id":8366826746721323000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_std::vector::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16379524086934900000,{"inputs":[{"Node":{"node_id":9609388203059839318,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.41796875,"green":0.1028595,"blue":0.1028595,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.421875,"green":0.1038208,"blue":0.1038208,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4600332392291315000,{"inputs":[{"Node":{"node_id":4040070953711778000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Node":{"node_id":11677958249556146000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::AssignColorsNode"}},"visible":true,"skip_deduplication":false}],[7386572856931342000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::PercentageValueNode"}},"visible":true,"skip_deduplication":false}],[4373650744391914031,{"inputs":[{"Node":{"node_id":9641606876402405523,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::ToU32Node"}},"visible":true,"skip_deduplication":false}],[16141281339223525000,{"inputs":[{"Value":{"tagged_value":{"VectorData":{"instance":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"line_cap":"Butt","line_join":"Miter","line_join_miter_limit":4.0,"transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_graphic_group":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[8940743774820468000,11897064075526275000,9664410344080632000,10418348123687606000,16594203120813726000,4839542169175255000,353992768245212100,4305429814263425000,15620564416450861000,4570709177617499000,9934671969500465000,6358127410693457000,753144493519442600,11874978858302702000,7888691908524886000,12582713598977278000,891169987742051100,5755835744378529000,16211201987812043000],"remove":[],"delta":[[4305429814263425000,[91.25136529719612,-51.92090379156713]],[10418348123687606000,[112.8352056529406,14.952290638773944]],[4570709177617499000,[114.716049382716,-90.16049382716052]],[5755835744378529000,[28.444444444444457,-210.4567901234568]],[7888691908524886000,[66.32098765432096,-154.30864197530863]],[11874978858302702000,[92.39506172839504,-161.41975308641972]],[4839542169175255000,[157.56627079134535,-37.10118604950259]],[8940743774820468000,[0.0,0.0]],[353992768245212100,[114.87770338918835,-41.33714586101814]],[12582713598977278000,[49.135802469135854,-136.33333333333334]],[891169987742051100,[63.802469135802426,-190.90123456790127]],[16211201987812043000,[0.0,-231.0]],[753144493519442600,[136.8395061728395,-177.6172839506173]],[9664410344080632000,[64.51145851883956,11.32880864191867]],[16594203120813726000,[126.09711290079348,-8.575894451947931]],[6358127410693457000,[115.50617283950618,-132.38271604938265]],[15620564416450861000,[141.77777777777777,-86.60493827160491]],[9934671969500465000,[125.38271604938268,-124.67901234567891]],[11897064075526275000,[72.71938634062775,26.932261408475423]]]},"segments":{"add":[7709585677887591000,14351209823603001000,18320159308706247000,8119312711427333000,4590600976245504500,17948338937502876000,1562499453192082400,3138315255762406000,2416974091592514600,3270826560526153000,5680639457836474000,3359087961315235300,9552874240071498000,15866454419016458000,4183498485018509000,2092445122112560000,16362428386097514000,12441313998107066000],"remove":[],"start_point":[[2092445122112560000,12582713598977278000],[16362428386097514000,891169987742051100],[4183498485018509000,7888691908524886000],[15866454419016458000,11874978858302702000],[18320159308706247000,9664410344080632000],[5680639457836474000,9934671969500465000],[8119312711427333000,10418348123687606000],[3138315255762406000,4305429814263425000],[3359087961315235300,6358127410693457000],[14351209823603001000,11897064075526275000],[4590600976245504500,16594203120813726000],[3270826560526153000,4570709177617499000],[1562499453192082400,353992768245212100],[2416974091592514600,15620564416450861000],[7709585677887591000,8940743774820468000],[12441313998107066000,5755835744378529000],[17948338937502876000,4839542169175255000],[9552874240071498000,753144493519442600]],"end_point":[[2416974091592514600,4570709177617499000],[7709585677887591000,11897064075526275000],[15866454419016458000,7888691908524886000],[14351209823603001000,9664410344080632000],[18320159308706247000,10418348123687606000],[5680639457836474000,6358127410693457000],[3138315255762406000,15620564416450861000],[4183498485018509000,12582713598977278000],[9552874240071498000,11874978858302702000],[3359087961315235300,753144493519442600],[1562499453192082400,4305429814263425000],[8119312711427333000,16594203120813726000],[2092445122112560000,891169987742051100],[3270826560526153000,9934671969500465000],[17948338937502876000,353992768245212100],[16362428386097514000,5755835744378529000],[12441313998107066000,16211201987812043000],[4590600976245504500,4839542169175255000]],"handle_primary":[[3359087961315235300,[2.7654320987655296,-14.419753086419746]],[9552874240071498000,[-21.33333333333331,12.049382716049422]],[4183498485018509000,[-6.617283950617207,15.308641975308689]],[3138315255762406000,[-2.469006630399008,-5.902063388586043]],[15866454419016458000,[-10.469135802469168,13.432098765432102]],[5680639457836474000,[0.0,0.0]],[3270826560526153000,[-9.086419753086432,-7.506172839506121]],[17948338937502876000,[0.0,0.0]],[2416974091592514600,[0.0,0.0]],[12441313998107066000,[-4.938271604938336,6.518518518518533]],[2092445122112560000,[-1.5802469135804245,-5.5308641975308035]],[1562499453192082400,[-15.34246181071461,-3.7168967220297873]],[16362428386097514000,[-14.913580246913511,12.641975308642031]],[7709585677887591000,[0.0,0.0]],[8119312711427333000,[0.0,0.0]],[14351209823603001000,[0.0,0.0]],[4590600976245504500,[-7.759646437163781,-18.695929243596197]],[18320159308706247000,[0.0,0.0]]],"handle_end":[[3359087961315235300,[-27.099224819820336,19.753086419753146]],[5680639457836474000,[-2.7654320987655296,14.419753086419746]],[3138315255762406000,[-21.33333333333337,3.753086419753061]],[12441313998107066000,[13.234567901234527,34.5679012345679]],[16362428386097514000,[-8.0,38.419753086419746]],[3270826560526153000,[-13.03703703703701,9.679012345678984]],[1562499453192082400,[2.0974057383288596,5.01376604938514]],[8119312711427333000,[-40.68684029964413,7.631779585305026]],[4590600976245504500,[-5.92501398131742,10.665547436428083]],[14351209823603001000,[5.742854988208705,6.327636391047918]],[18320159308706247000,[-24.983271918092953,-7.776766653003392]],[17948338937502876000,[25.51458639999055,20.651563178633637]],[2092445122112560000,[-20.345679012345613,18.5679012345679]],[2416974091592514600,[9.086419753086377,7.506172839506235]],[4183498485018509000,[4.938271604938336,-1.1851851851851052]],[7709585677887591000,[-42.51530058403631,-10.382498109968708]],[15866454419016458000,[0.19753086419757435,13.827160493827137]],[9552874240071498000,[4.938271604938279,11.061728395061806]]],"stroke":[[18320159308706247000,0],[14351209823603001000,0],[5680639457836474000,0],[4590600976245504500,0],[3359087961315235300,0],[17948338937502876000,0],[16362428386097514000,0],[12441313998107066000,0],[3138315255762406000,0],[15866454419016458000,0],[4183498485018509000,0],[9552874240071498000,0],[7709585677887591000,0],[2092445122112560000,0],[2416974091592514600,0],[3270826560526153000,0],[1562499453192082400,0],[8119312711427333000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":5680639457836474000},{"ty":"Primary","segment":3359087961315235300}],[{"ty":"End","segment":1562499453192082400},{"ty":"Primary","segment":3138315255762406000}],[{"ty":"End","segment":2416974091592514600},{"ty":"Primary","segment":3270826560526153000}]],"remove_g1_continuous":[[{"ty":"End","segment":4183498485018509000},{"ty":"Primary","segment":2092445122112560000}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_data::modification::VectorModification","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_data::modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9641606876402405523,{"inputs":[],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::InstanceIndexNode"}},"visible":true,"skip_deduplication":false}],[9609388203059839318,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[799182088624980700,{"inputs":[{"Node":{"node_id":7386572856931342000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::DivideNode"}},"visible":true,"skip_deduplication":false}],[9079109751490757000,{"inputs":[{"Value":{"tagged_value":{"ImageFrame":{"instance":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":2233138531352324200,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[11677958249556146000,{"inputs":[{"Node":{"node_id":17021405646895729000,"output_index":0,"lambda":false}},{"Node":{"node_id":17855766443650990000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BlendMode":"Normal"},"exposed":false}},{"Node":{"node_id":7386572856931342000,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::raster::adjustments::BlendNode"}},"visible":true,"skip_deduplication":false}],[13846904447064916285,{"inputs":[{"Node":{"node_id":16084834641749443000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MirrorNode"}},"visible":true,"skip_deduplication":false}],[7094974507355892337,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[2166474486859326700,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5348726859432207000,{"inputs":[{"Node":{"node_id":12796400626461303056,"output_index":0,"lambda":false}},{"Node":{"node_id":2233138531352324200,"output_index":0,"lambda":false}},{"Node":{"node_id":799182088624980700,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MorphNode"}},"visible":true,"skip_deduplication":false}],[10690271318666670633,{"inputs":[{"Node":{"node_id":12004715210677400127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.2},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::SubtractNode"}},"visible":true,"skip_deduplication":false}],[3430686124240113700,{"inputs":[{"Node":{"node_id":3602127523880426500,"output_index":0,"lambda":false}},{"Node":{"node_id":16379524086934900000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18233215297647862000,{"inputs":[{"Node":{"node_id":14337610765966946000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,500.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":5}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8876924567444570473,{"inputs":[{"Node":{"node_id":26023588519449590,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MirrorNode"}},"visible":true,"skip_deduplication":false}],[12004715210677400127,{"inputs":[{"Node":{"node_id":3223387122603246085,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.1},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::MaxNode"}},"visible":true,"skip_deduplication":false}],[14250786159408925409,{"inputs":[{"Node":{"node_id":3430686124240113700,"output_index":0,"lambda":false}},{"Node":{"node_id":16236970157339521798,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14337610765966946000,{"inputs":[{"Node":{"node_id":14250786159408925409,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5991296268862790000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[213744308682803360,{"inputs":[{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":10463288500489480000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16236970157339521798,{"inputs":[{"Node":{"node_id":8895289679682140000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"U64":8},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::InstanceRepeatNode"}},"visible":true,"skip_deduplication":false}],[26023588519449590,{"inputs":[{"Node":{"node_id":4002029424845293600,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139],"transform":[-371.95192745983906,4.5550973740038046e-14,0.0,965.1086770605688,766.3711364618157,-61.108677060568766]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12796400626461303056,{"inputs":[{"Node":{"node_id":1250460246919467000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[4040070953711778000,{"persistent_metadata":{"reference":"Copy to Points","display_name":"","input_properties":[{"input_data":{"input_name":"Points"},"widget_override":null},{"input_data":{"input_name":"Instance","tooltip":"Artwork to be copied and placed at each point"},"widget_override":null},{"input_data":{"input_name":"Random Scale Min","range_max":2,"unit":"x","blank_assist":true,"is_integer":false,"mode":"Range","tooltip":"Minimum range of randomized sizes given to each instance","range_min":0,"min":0},"widget_override":"number"},{"input_data":{"input_name":"Random Scale Max","mode":"Range","blank_assist":true,"min":0,"unit":"x","is_integer":false,"range_min":0,"range_max":2,"tooltip":"Minimum range of randomized sizes given to each instance"},"widget_override":"number"},{"input_data":{"mode":"Range","range_max":50,"range_min":-50,"blank_assist":true,"input_name":"Random Scale Bias","is_integer":false,"tooltip":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes)"},"widget_override":"number"},{"input_data":{"tooltip":"Seed to determine unique variations on all the randomized instance sizes","input_name":"Random Scale Seed","is_integer":true,"min":0,"blank_assist":true,"mode":"Increment"},"widget_override":"number"},{"input_data":{"is_integer":false,"mode":"Range","max":360,"unit":"°","min":0,"input_name":"Random Rotation","tooltip":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise","blank_assist":true},"widget_override":"number"},{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":0,"input_name":"Random Rotation Seed","tooltip":"Seed to determine unique variations on all the randomized instance angles"},"widget_override":"number"}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-38]}}},"network_metadata":null}}],[2233138531352324200,{"persistent_metadata":{"reference":"Cache","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8366826746721323000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-13]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17855766443650990000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Gradient"},"widget_override":null}],"output_names":["GradientStops"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-40]}}},"network_metadata":null}}],[26023588519449590,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4600332392291315000,{"persistent_metadata":{"reference":"Assign Colors","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Group"},"widget_override":"hidden"},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Stroke"},"widget_override":null},{"input_data":{"input_name":"Gradient"},"widget_override":"assign_colors_gradient"},{"input_data":{"input_name":"Reverse"},"widget_override":null},{"input_data":{"input_name":"Randomize"},"widget_override":null},{"input_data":{"input_name":"Seed"},"widget_override":null},{"input_data":{"input_name":"Repeat Every"},"widget_override":"assign_colors_repeat_every"}],"output_names":["Vector Group"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16379524086934900000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[213744308682803360,{"persistent_metadata":{"reference":"Merge","display_name":"Leaves","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1250460246919467000,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"","input_properties":[{"input_data":{"input_name":"Group of Paths"},"widget_override":null},{"input_data":{"input_name":"Operation"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6102164880094062000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9641606876402405523,{"persistent_metadata":{"reference":"Instance Index","display_name":"","input_properties":[],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-36]}}},"network_metadata":null}}],[17021405646895729000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Gradient"},"widget_override":null}],"output_names":["GradientStops"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-41]}}},"network_metadata":null}}],[5591755359500854000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16236970157339521798,{"persistent_metadata":{"reference":"Instance Repeat","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10463288500489480000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4742778578215475000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9079109751490757000,{"persistent_metadata":{"reference":"Merge","display_name":"Maple Leaf","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3223387122603246085,{"persistent_metadata":{"reference":"Math","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-35]}}},"network_metadata":null}}],[5348726859432207000,{"persistent_metadata":{"reference":"Morph","display_name":"","input_properties":[{"input_data":{"input_name":"Source"},"widget_override":null},{"input_data":{"input_name":"Target"},"widget_override":null},{"input_data":{"input_name":"Time"},"widget_override":null},{"input_data":{"input_name":"Start Index"},"widget_override":null}],"output_names":["Instances"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-32]}}},"network_metadata":null}}],[13846904447064916285,{"persistent_metadata":{"reference":"Mirror","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17725188707009528000,{"persistent_metadata":{"reference":"Merge","display_name":"Morph","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[9,-29]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[366962978353611840,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"","input_properties":[{"input_data":{"input_name":"Group of Paths"},"widget_override":null},{"input_data":{"input_name":"Operation"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8876924567444570473,{"persistent_metadata":{"reference":"Mirror","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1924303400883620400,{"persistent_metadata":{"reference":"Path","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Modification"},"widget_override":null}],"output_names":["Vector Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-44,-19]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18233215297647862000,{"persistent_metadata":{"reference":"Transform","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"y":"Y","unit":" px","input_name":"Translation","x":"X"},"widget_override":"vec2"},{"input_data":{"input_name":"Rotation"},"widget_override":"transform_rotation"},{"input_data":{"input_name":"Scale","x":"W","y":"H","unit":"x"},"widget_override":"vec2"},{"input_data":{"input_name":"Skew"},"widget_override":"hidden"},{"input_data":{"input_name":"Pivot"},"widget_override":"hidden"}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16141281339223525000,{"persistent_metadata":{"reference":"Path","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Modification"},"widget_override":null}],"output_names":["Vector Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-58,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3430686124240113700,{"persistent_metadata":{"reference":"Merge","display_name":"Solid Backdrop","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":8}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2166474486859326700,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[2,-32]}}},"network_metadata":null}}],[9609388203059839318,{"persistent_metadata":{"reference":"Rectangle","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Width"},"widget_override":null},{"input_data":{"input_name":"Height"},"widget_override":null},{"input_data":{"input_name":"Individual Corner Radii"},"widget_override":null},{"input_data":{"input_name":"Corner Radius"},"widget_override":null},{"input_data":{"input_name":"Clamped"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7386572856931342000,{"persistent_metadata":{"reference":"Percentage Value","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Percentage"},"widget_override":null}],"output_names":["f64"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-39]}}},"network_metadata":null}}],[11677958249556146000,{"persistent_metadata":{"reference":"Blend","display_name":"","input_properties":[{"input_data":{"input_name":"Over"},"widget_override":null},{"input_data":{"input_name":"Under"},"widget_override":null},{"input_data":{"input_name":"Blend Mode"},"widget_override":null},{"input_data":{"input_name":"Opacity"},"widget_override":null}],"output_names":["Color"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-41]}}},"network_metadata":null}}],[8895289679682140000,{"persistent_metadata":{"reference":"Merge","display_name":"Depth Shadow","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[2,-45]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7954638344846060000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17025512774010843000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7094974507355892337,{"persistent_metadata":{"reference":"Rectangle","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Width"},"widget_override":null},{"input_data":{"input_name":"Height"},"widget_override":null},{"input_data":{"input_name":"Individual Corner Radii"},"widget_override":null},{"input_data":{"input_name":"Corner Radius"},"widget_override":null},{"input_data":{"input_name":"Clamped"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-38]}}},"network_metadata":null}}],[12796400626461303056,{"persistent_metadata":{"reference":"Cache","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1789832635968548900,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14250786159408925409,{"persistent_metadata":{"reference":"Merge","display_name":"Leaf Levels","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13712392741217151405,{"persistent_metadata":{"reference":"Cache","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-5,-32]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[799182088624980700,{"persistent_metadata":{"reference":"Divide","display_name":"","input_properties":[{"input_data":{"input_name":"Numerator"},"widget_override":null},{"input_data":{"input_name":"Denominator"},"widget_override":null}],"output_names":["Output"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-30]}}},"network_metadata":null}}],[3602127523880426500,{"persistent_metadata":{"reference":"Merge","display_name":"Individual Leaf Views","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4373650744391914031,{"persistent_metadata":{"reference":"To u32","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-37]}}},"network_metadata":null}}],[14337610765966946000,{"persistent_metadata":{"reference":"Merge","display_name":"NOTE: Change seasons with the \"Percentage Value\" parameter","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[14,-52]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10316247453530667000,{"persistent_metadata":{"reference":"Merge","display_name":"Oak Leaf","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":1}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4002029424845293600,{"persistent_metadata":{"reference":"Path","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Modification"},"widget_override":null}],"output_names":["Vector Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14253625255053304000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3143874172491239000,{"persistent_metadata":{"reference":"Artboard","display_name":"","input_properties":[{"input_data":{"input_name":"Artboards"},"widget_override":null},{"input_data":{"input_name":"Contents"},"widget_override":"hidden"},{"input_data":{"unit":" px","input_name":"Location","y":"Y","x":"X"},"widget_override":"vec2"},{"input_data":{"unit":" px","input_name":"Dimensions","y":"H","x":"W"},"widget_override":"vec2"},{"input_data":{"input_name":"Background"},"widget_override":"artboard_background"},{"input_data":{"input_name":"Clip"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[26,-56]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Artboard","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-10,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-2,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Append Artboards","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[6,-4]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16084834641749443000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5991296268862790000,{"persistent_metadata":{"reference":"Rectangle","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Width"},"widget_override":null},{"input_data":{"input_name":"Height"},"widget_override":null},{"input_data":{"input_name":"Individual Corner Radii"},"widget_override":null},{"input_data":{"input_name":"Corner Radius"},"widget_override":null},{"input_data":{"input_name":"Clamped"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15908863353600836000,{"persistent_metadata":{"reference":"Scatter Points","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"range_max":100,"mode":"Range","blank_assist":true,"input_name":"Separation Disk Diameter","is_integer":false,"min":0.01,"range_min":1},"widget_override":"number"},{"input_data":{"is_integer":true,"blank_assist":true,"min":0,"mode":"Increment","input_name":"Seed"},"widget_override":"number"}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-38]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10690271318666670633,{"persistent_metadata":{"reference":"Subtract","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-36]}}},"network_metadata":null}}],[12004715210677400127,{"persistent_metadata":{"reference":"Max","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-35]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[287.6272550000002,767.89247],"tilt":0.0,"zoom":1.0},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1278.0,1349.0],"node_graph_top_right":[1980.800048828125,0.0]},"selection_undo_history":[[1924303400883620400,8366826746721323000,16084834641749443000,13846904447064916285,366962978353611840,14253625255053304000,4002029424845293600,6102164880094062000,1250460246919467000,26023588519449590,5591755359500854000,8876924567444570473,4742778578215475000,1789832635968548900,16141281339223525000],[799182088624980700,4002029424845293600,366962978353611840,14253625255053304000,5348726859432207000,4742778578215475000,16084834641749443000,8876924567444570473,1924303400883620400,26023588519449590,16141281339223525000,1789832635968548900,1250460246919467000,13846904447064916285,5591755359500854000,6102164880094062000,8366826746721323000],[8876924567444570473,799182088624980700,26023588519449590,8366826746721323000,16084834641749443000,5591755359500854000,6102164880094062000,16141281339223525000,366962978353611840,1250460246919467000,4002029424845293600,1789832635968548900,1924303400883620400,14253625255053304000,13712392741217151405,13846904447064916285,5348726859432207000,4742778578215475000],[1250460246919467000,16084834641749443000,8366826746721323000,4002029424845293600,799182088624980700,26023588519449590,5348726859432207000,366962978353611840,8876924567444570473,6102164880094062000,13712392741217151405,13846904447064916285,9079109751490757000,5591755359500854000,16141281339223525000,1789832635968548900,1924303400883620400,14253625255053304000,4742778578215475000],[1250460246919467000,5348726859432207000,8366826746721323000,14253625255053304000,5591755359500854000,13846904447064916285,26023588519449590,799182088624980700,4742778578215475000,8876924567444570473,6102164880094062000,1924303400883620400,10316247453530667000,13712392741217151405,366962978353611840,1789832635968548900,4002029424845293600,16084834641749443000,9079109751490757000,16141281339223525000],[4742778578215475000,13712392741217151405,9079109751490757000,8876924567444570473,8366826746721323000,10316247453530667000,5348726859432207000,16084834641749443000,13846904447064916285,5591755359500854000,1789832635968548900,16141281339223525000,1250460246919467000,14253625255053304000,799182088624980700,366962978353611840,4002029424845293600,1924303400883620400,17725188707009528000,26023588519449590,6102164880094062000,17025512774010843000],[5591755359500854000,366962978353611840,4002029424845293600,3602127523880426500,5348726859432207000,13846904447064916285,6102164880094062000,26023588519449590,17025512774010843000,14253625255053304000,17725188707009528000,13712392741217151405,4742778578215475000,1924303400883620400,1789832635968548900,1250460246919467000,16141281339223525000,799182088624980700,8366826746721323000,9079109751490757000,8876924567444570473,10316247453530667000,16084834641749443000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,6102164880094062000,5591755359500854000,14253625255053304000,1789832635968548900,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840],[1789832635968548900,8366826746721323000,366962978353611840,5591755359500854000,4742778578215475000,26023588519449590,8876924567444570473,6102164880094062000,13846904447064916285,16084834641749443000,14253625255053304000],[8366826746721323000,13846904447064916285,26023588519449590,8876924567444570473,366962978353611840,4002029424845293600,1789832635968548900,16084834641749443000,4742778578215475000,6102164880094062000,5591755359500854000,1250460246919467000,14253625255053304000],[8876924567444570473,799182088624980700,5348726859432207000,13846904447064916285,366962978353611840,8366826746721323000,5591755359500854000,4742778578215475000,26023588519449590,4002029424845293600,16084834641749443000,14253625255053304000,1250460246919467000,6102164880094062000,1789832635968548900],[6102164880094062000,16084834641749443000,4742778578215475000,366962978353611840,16141281339223525000,1789832635968548900,26023588519449590,5591755359500854000,8876924567444570473,13846904447064916285,1924303400883620400,799182088624980700,8366826746721323000,4002029424845293600,5348726859432207000,1250460246919467000,14253625255053304000],[1250460246919467000,26023588519449590,13846904447064916285,14253625255053304000,1924303400883620400,16141281339223525000,6102164880094062000,4742778578215475000,5348726859432207000,8366826746721323000,799182088624980700,1789832635968548900,4002029424845293600,16084834641749443000,8876924567444570473,366962978353611840,13712392741217151405,5591755359500854000],[8366826746721323000,8876924567444570473,1924303400883620400,1250460246919467000,26023588519449590,366962978353611840,14253625255053304000,6102164880094062000,4002029424845293600,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900,5348726859432207000,5591755359500854000,799182088624980700,16141281339223525000],[799182088624980700,8366826746721323000,6102164880094062000,26023588519449590,1250460246919467000,1789832635968548900,16084834641749443000,8876924567444570473,4002029424845293600,4742778578215475000,5348726859432207000,13846904447064916285,366962978353611840,14253625255053304000,5591755359500854000],[16084834641749443000,4742778578215475000,6102164880094062000,13846904447064916285,5348726859432207000,1789832635968548900,1250460246919467000,14253625255053304000,799182088624980700,26023588519449590,5591755359500854000,366962978353611840,8366826746721323000,8876924567444570473],[8876924567444570473,26023588519449590,366962978353611840,1250460246919467000,4742778578215475000,14253625255053304000,5591755359500854000,13846904447064916285,6102164880094062000,4002029424845293600,16084834641749443000,8366826746721323000,5348726859432207000,799182088624980700,1789832635968548900],[5591755359500854000,8876924567444570473,16141281339223525000,4002029424845293600,1789832635968548900,1250460246919467000,5348726859432207000,4742778578215475000,6102164880094062000,366962978353611840,16084834641749443000,8366826746721323000,1924303400883620400,799182088624980700,26023588519449590,14253625255053304000,13846904447064916285],[1924303400883620400,8876924567444570473,1789832635968548900,4002029424845293600,799182088624980700,16084834641749443000,13846904447064916285,8366826746721323000,26023588519449590,6102164880094062000,13712392741217151405,5348726859432207000,366962978353611840,16141281339223525000,14253625255053304000,4742778578215475000,5591755359500854000,1250460246919467000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,366962978353611840,4742778578215475000,5591755359500854000,6102164880094062000],[14253625255053304000,8366826746721323000,366962978353611840,1789832635968548900,8876924567444570473,5591755359500854000,4742778578215475000,6102164880094062000,13846904447064916285],[4742778578215475000,5591755359500854000,13846904447064916285,366962978353611840,14253625255053304000,8876924567444570473,16084834641749443000,8366826746721323000,1789832635968548900,26023588519449590,6102164880094062000],[1789832635968548900,5591755359500854000,4742778578215475000,8366826746721323000,13846904447064916285,6102164880094062000,1250460246919467000,16084834641749443000,8876924567444570473,14253625255053304000,4002029424845293600,366962978353611840,26023588519449590],[1789832635968548900,5348726859432207000,5591755359500854000,8876924567444570473,8366826746721323000,26023588519449590,6102164880094062000,366962978353611840,16084834641749443000,4742778578215475000,13846904447064916285,14253625255053304000,1250460246919467000,4002029424845293600],[16084834641749443000,4002029424845293600,8366826746721323000,5591755359500854000,6102164880094062000,14253625255053304000,4742778578215475000,8876924567444570473,13846904447064916285,16141281339223525000,1924303400883620400,26023588519449590,1250460246919467000,366962978353611840,1789832635968548900,5348726859432207000],[1789832635968548900,13846904447064916285,1924303400883620400,6102164880094062000,4742778578215475000,8876924567444570473,16084834641749443000,5591755359500854000,13712392741217151405,366962978353611840,16141281339223525000,26023588519449590,8366826746721323000,1250460246919467000,5348726859432207000,4002029424845293600,14253625255053304000],[6102164880094062000,26023588519449590,8876924567444570473,4002029424845293600,4742778578215475000,8366826746721323000,5348726859432207000,5591755359500854000,16141281339223525000,13846904447064916285,1789832635968548900,1250460246919467000,14253625255053304000,16084834641749443000,366962978353611840,1924303400883620400],[1250460246919467000,13712392741217151405,1924303400883620400,16141281339223525000,6102164880094062000,8876924567444570473,366962978353611840,13846904447064916285,8366826746721323000,14253625255053304000,16084834641749443000,1789832635968548900,26023588519449590,4742778578215475000,5348726859432207000,4002029424845293600,5591755359500854000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,9079109751490757000,5348726859432207000],[10316247453530667000,4742778578215475000,8366826746721323000,1250460246919467000,6102164880094062000,366962978353611840,5591755359500854000,9079109751490757000,5348726859432207000],[4742778578215475000,9079109751490757000,17725188707009528000,10316247453530667000,5591755359500854000,8366826746721323000,5348726859432207000,366962978353611840,1250460246919467000,6102164880094062000],[1250460246919467000,14253625255053304000,1789832635968548900,17725188707009528000,5348726859432207000,5591755359500854000,8366826746721323000,9079109751490757000,10316247453530667000,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840,6102164880094062000],[4742778578215475000,5348726859432207000,14253625255053304000,10316247453530667000,9079109751490757000,366962978353611840,1789832635968548900,13846904447064916285,5591755359500854000,1250460246919467000,6102164880094062000,799182088624980700,8876924567444570473,8366826746721323000,17725188707009528000],[9079109751490757000,13846904447064916285,5591755359500854000,5348726859432207000,366962978353611840,799182088624980700,4742778578215475000,8876924567444570473,1789832635968548900,14253625255053304000,17725188707009528000,8366826746721323000,10316247453530667000,6102164880094062000,16084834641749443000,26023588519449590,1250460246919467000],[10316247453530667000,366962978353611840,17025512774010843000,799182088624980700,6102164880094062000,16084834641749443000,8366826746721323000,17725188707009528000,5348726859432207000,14253625255053304000,4002029424845293600,1250460246919467000,26023588519449590,9079109751490757000,13846904447064916285,1789832635968548900,5591755359500854000,4742778578215475000,13712392741217151405,8876924567444570473],[17725188707009528000,1250460246919467000,1789832635968548900,366962978353611840,5591755359500854000,9079109751490757000,14253625255053304000,5348726859432207000,4742778578215475000,6102164880094062000,10316247453530667000,799182088624980700,4002029424845293600,13846904447064916285,1924303400883620400,17025512774010843000,8876924567444570473,26023588519449590,13712392741217151405,16141281339223525000,16084834641749443000,8366826746721323000],[9641606876402405523,7094974507355892337,2166474486859326700,4373650744391914031,15908863353600836000,10690271318666670633,5348726859432207000,3223387122603246085,799182088624980700,17725188707009528000,4040070953711778000,12004715210677400127,13712392741217151405],[4040070953711778000,10690271318666670633,9641606876402405523,799182088624980700,12004715210677400127,13712392741217151405,17725188707009528000,2166474486859326700,4373650744391914031,7094974507355892337,3223387122603246085,15908863353600836000,17025512774010843000,5348726859432207000],[10690271318666670633,5348726859432207000,17725188707009528000,3223387122603246085,12004715210677400127,13712392741217151405,1250460246919467000,4373650744391914031,799182088624980700,9641606876402405523,4040070953711778000,7094974507355892337,15908863353600836000,17025512774010843000,2166474486859326700],[7094974507355892337,3223387122603246085,13712392741217151405,10316247453530667000,15908863353600836000,12004715210677400127,4040070953711778000,1250460246919467000,799182088624980700,17725188707009528000,2166474486859326700,5348726859432207000,9641606876402405523,10690271318666670633,17025512774010843000,4373650744391914031],[13712392741217151405,17025512774010843000,15908863353600836000,12004715210677400127,10690271318666670633,17725188707009528000,4373650744391914031,7094974507355892337,3602127523880426500,2166474486859326700,799182088624980700,10316247453530667000,5348726859432207000,3223387122603246085,4040070953711778000,1250460246919467000,9641606876402405523],[17025512774010843000,4040070953711778000,5348726859432207000,12004715210677400127,17725188707009528000,3602127523880426500,10690271318666670633,7094974507355892337,3223387122603246085,1250460246919467000,4742778578215475000,4002029424845293600,10316247453530667000,799182088624980700,4373650744391914031,9641606876402405523,2166474486859326700,13712392741217151405,15908863353600836000],[17725188707009528000,17025512774010843000,13712392741217151405,10690271318666670633,7094974507355892337,12004715210677400127,3223387122603246085,26023588519449590,15908863353600836000,10316247453530667000,3602127523880426500,4002029424845293600,799182088624980700,5348726859432207000,4373650744391914031,9641606876402405523,4742778578215475000,4040070953711778000,2166474486859326700,1250460246919467000],[2166474486859326700,1250460246919467000,3223387122603246085,9641606876402405523,8366826746721323000,799182088624980700,8876924567444570473,16141281339223525000,10316247453530667000,13846904447064916285,26023588519449590,7094974507355892337,15908863353600836000,3602127523880426500,4742778578215475000,5348726859432207000,17025512774010843000,6102164880094062000,4040070953711778000,14253625255053304000,17725188707009528000,10690271318666670633,4002029424845293600,12004715210677400127,13712392741217151405,16084834641749443000,4373650744391914031],[1250460246919467000,3223387122603246085,10316247453530667000,5348726859432207000,2166474486859326700,6102164880094062000,17725188707009528000,12004715210677400127,3602127523880426500,4742778578215475000,4373650744391914031,8876924567444570473,1789832635968548900,799182088624980700,17025512774010843000,4040070953711778000,7094974507355892337,9641606876402405523,5591755359500854000,4002029424845293600,26023588519449590,13712392741217151405,15908863353600836000,16141281339223525000,1924303400883620400,8366826746721323000,13846904447064916285,10690271318666670633,16084834641749443000,14253625255053304000],[13846904447064916285,4373650744391914031,4742778578215475000,366962978353611840,4002029424845293600,17725188707009528000,17025512774010843000,3223387122603246085,15908863353600836000,8876924567444570473,1924303400883620400,8366826746721323000,6102164880094062000,12004715210677400127,16141281339223525000,10316247453530667000,3602127523880426500,1789832635968548900,799182088624980700,7094974507355892337,2166474486859326700,26023588519449590,10690271318666670633,14253625255053304000,1250460246919467000,4040070953711778000,9641606876402405523,13712392741217151405,16084834641749443000,5348726859432207000,5591755359500854000],[9079109751490757000],[17725188707009528000],[13712392741217151405,17725188707009528000,5348726859432207000,17025512774010843000,2166474486859326700],[17725188707009528000,2166474486859326700,17025512774010843000,5348726859432207000,1250460246919467000,13712392741217151405],[2166474486859326700,10316247453530667000,1250460246919467000,17025512774010843000,17725188707009528000,13712392741217151405,5348726859432207000],[17025512774010843000,2166474486859326700,17725188707009528000,5348726859432207000,13712392741217151405,9079109751490757000,1250460246919467000,10316247453530667000],[17025512774010843000,13712392741217151405,8366826746721323000,2166474486859326700,1250460246919467000,5348726859432207000,9079109751490757000,10316247453530667000,5591755359500854000,17725188707009528000],[6102164880094062000,5591755359500854000,17025512774010843000,17725188707009528000,9079109751490757000,1250460246919467000,2166474486859326700,8366826746721323000,10316247453530667000,5348726859432207000,366962978353611840,13712392741217151405],[6102164880094062000,4742778578215475000,1250460246919467000,366962978353611840,1789832635968548900,14253625255053304000,5591755359500854000,2166474486859326700,13712392741217151405,17025512774010843000,17725188707009528000,9079109751490757000,10316247453530667000,5348726859432207000,13846904447064916285,8366826746721323000],[13846904447064916285,16084834641749443000,1789832635968548900,2166474486859326700,5348726859432207000,26023588519449590,1250460246919467000,6102164880094062000,366962978353611840,13712392741217151405,5591755359500854000,9079109751490757000,10316247453530667000,8876924567444570473,17725188707009528000,17025512774010843000,8366826746721323000,14253625255053304000,4742778578215475000,1924303400883620400],[9079109751490757000,366962978353611840,8876924567444570473,2166474486859326700,5348726859432207000,26023588519449590,13712392741217151405,14253625255053304000,10316247453530667000,1924303400883620400,17025512774010843000,6102164880094062000,16084834641749443000,5591755359500854000,1789832635968548900,13846904447064916285,1250460246919467000,17725188707009528000,8366826746721323000,4742778578215475000,4002029424845293600],[4002029424845293600,2166474486859326700,1924303400883620400,16084834641749443000,17725188707009528000,4742778578215475000,13846904447064916285,16141281339223525000,9079109751490757000,6102164880094062000,5591755359500854000,13712392741217151405,26023588519449590,10316247453530667000,17025512774010843000,5348726859432207000,1789832635968548900,366962978353611840,1250460246919467000,8876924567444570473,14253625255053304000,8366826746721323000],[16141281339223525000,4002029424845293600,4742778578215475000,8876924567444570473,799182088624980700,26023588519449590],[16141281339223525000,4742778578215475000,799182088624980700,4002029424845293600,1250460246919467000,26023588519449590,8876924567444570473,6102164880094062000],[14253625255053304000,8876924567444570473,1924303400883620400,1250460246919467000,799182088624980700,16141281339223525000,4742778578215475000,6102164880094062000,26023588519449590,4002029424845293600],[1924303400883620400,6102164880094062000,799182088624980700,1250460246919467000,26023588519449590,5348726859432207000,16141281339223525000,8876924567444570473,4002029424845293600,4742778578215475000,14253625255053304000],[8876924567444570473,799182088624980700,26023588519449590,14253625255053304000,6102164880094062000,1924303400883620400,16141281339223525000,4002029424845293600,366962978353611840,5348726859432207000,4742778578215475000,1250460246919467000],[26023588519449590,4742778578215475000,8366826746721323000,8876924567444570473,1250460246919467000,5348726859432207000,366962978353611840,14253625255053304000,799182088624980700,1924303400883620400,6102164880094062000,16141281339223525000,4002029424845293600],[1924303400883620400,799182088624980700,8366826746721323000,14253625255053304000,16141281339223525000,17725188707009528000,1250460246919467000,26023588519449590,5348726859432207000,4002029424845293600,6102164880094062000,4742778578215475000,8876924567444570473,366962978353611840],[1250460246919467000,8876924567444570473,14253625255053304000,16141281339223525000,1924303400883620400,17725188707009528000,4742778578215475000,13846904447064916285,6102164880094062000,8366826746721323000,16084834641749443000,17025512774010843000,4002029424845293600,799182088624980700,26023588519449590,366962978353611840,5348726859432207000],[14253625255053304000,26023588519449590,4742778578215475000,16084834641749443000,6102164880094062000,366962978353611840,17725188707009528000,799182088624980700,1924303400883620400,16141281339223525000,5591755359500854000,4002029424845293600,1250460246919467000,13846904447064916285,8876924567444570473,5348726859432207000,8366826746721323000,17025512774010843000],[799182088624980700,5591755359500854000,1789832635968548900,8366826746721323000,17025512774010843000,1250460246919467000,26023588519449590,13846904447064916285,1924303400883620400,16084834641749443000,5348726859432207000,14253625255053304000,4742778578215475000,6102164880094062000,8876924567444570473,366962978353611840,17725188707009528000,16141281339223525000,4002029424845293600],[8366826746721323000,4742778578215475000,10316247453530667000,26023588519449590,5348726859432207000,9079109751490757000,799182088624980700,13846904447064916285,14253625255053304000,1789832635968548900,366962978353611840,8876924567444570473,16084834641749443000,17725188707009528000,17025512774010843000,5591755359500854000,16141281339223525000,1924303400883620400,1250460246919467000,6102164880094062000,4002029424845293600],[16084834641749443000,17725188707009528000,16141281339223525000,799182088624980700,14253625255053304000,13712392741217151405,8366826746721323000,17025512774010843000,5348726859432207000,8876924567444570473,4002029424845293600,9079109751490757000,6102164880094062000,1250460246919467000,5591755359500854000,4742778578215475000,1789832635968548900,10316247453530667000,13846904447064916285,366962978353611840,26023588519449590,1924303400883620400],[16084834641749443000,14253625255053304000,1789832635968548900,8876924567444570473,5591755359500854000,366962978353611840,2166474486859326700,17725188707009528000,13712392741217151405,17025512774010843000,4002029424845293600,10316247453530667000,1924303400883620400,26023588519449590,1250460246919467000,9079109751490757000,8366826746721323000,16141281339223525000,799182088624980700,5348726859432207000,13846904447064916285,4742778578215475000,6102164880094062000],[3602127523880426500],[5591755359500854000,8366826746721323000],[6102164880094062000,2233138531352324200,5591755359500854000,8366826746721323000,366962978353611840],[8366826746721323000,13846904447064916285,6102164880094062000,8876924567444570473,5591755359500854000,366962978353611840,2233138531352324200,4742778578215475000,14253625255053304000,1789832635968548900],[13846904447064916285,2233138531352324200,8876924567444570473,366962978353611840,1924303400883620400,1789832635968548900,14253625255053304000,5591755359500854000,16084834641749443000,8366826746721323000,26023588519449590,4742778578215475000,6102164880094062000],[14253625255053304000,4742778578215475000,6102164880094062000,1789832635968548900,12796400626461303056,2233138531352324200,8876924567444570473,26023588519449590,8366826746721323000,366962978353611840,13846904447064916285,1924303400883620400,1250460246919467000,16084834641749443000,5591755359500854000],[4002029424845293600,366962978353611840,1789832635968548900,14253625255053304000,4742778578215475000,13846904447064916285,1924303400883620400,2233138531352324200,1250460246919467000,6102164880094062000,16084834641749443000,12796400626461303056,5591755359500854000,8366826746721323000,26023588519449590,8876924567444570473],[4002029424845293600,14253625255053304000,366962978353611840,1924303400883620400,12796400626461303056,5591755359500854000,16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,13846904447064916285,8366826746721323000,2233138531352324200,1250460246919467000,6102164880094062000,8876924567444570473,4742778578215475000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,17725188707009528000,9079109751490757000],[3602127523880426500],[9079109751490757000],[2233138531352324200,9079109751490757000],[2233138531352324200,8366826746721323000,366962978353611840,5591755359500854000,9079109751490757000],[366962978353611840,2233138531352324200,5591755359500854000,8366826746721323000,6102164880094062000,9079109751490757000],[5591755359500854000,9079109751490757000,13846904447064916285,2233138531352324200,366962978353611840,1789832635968548900,14253625255053304000,6102164880094062000,8366826746721323000],[1924303400883620400,13846904447064916285,366962978353611840,14253625255053304000,8366826746721323000,2233138531352324200,16084834641749443000,5591755359500854000,6102164880094062000,9079109751490757000,1789832635968548900],[366962978353611840,8366826746721323000,6102164880094062000,14253625255053304000,2233138531352324200,1924303400883620400,9079109751490757000,5591755359500854000,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900],[14253625255053304000,1924303400883620400,26023588519449590,5591755359500854000,16084834641749443000,1789832635968548900,9079109751490757000,13846904447064916285,366962978353611840,6102164880094062000,4742778578215475000,4002029424845293600,2233138531352324200,8366826746721323000],[1789832635968548900,26023588519449590,5591755359500854000,1924303400883620400,16084834641749443000,13846904447064916285,4742778578215475000,9079109751490757000,366962978353611840,8876924567444570473,2233138531352324200,14253625255053304000,8366826746721323000,4002029424845293600,6102164880094062000],[5591755359500854000,16141281339223525000,4742778578215475000,14253625255053304000,26023588519449590,2233138531352324200,13846904447064916285,1789832635968548900,1924303400883620400,16084834641749443000,8366826746721323000,8876924567444570473,6102164880094062000,9079109751490757000,366962978353611840,4002029424845293600],[16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,8876924567444570473,13846904447064916285,1924303400883620400,2233138531352324200,8366826746721323000,10316247453530667000,5591755359500854000,4742778578215475000,6102164880094062000,366962978353611840,4002029424845293600,9079109751490757000,14253625255053304000],[4002029424845293600,2233138531352324200,1789832635968548900,1924303400883620400,16084834641749443000,1250460246919467000,5591755359500854000,4742778578215475000,14253625255053304000,9079109751490757000,8876924567444570473,10316247453530667000,13846904447064916285,6102164880094062000,8366826746721323000,26023588519449590,12796400626461303056,366962978353611840,16141281339223525000],[]],"selection_redo_history":[]}}},"collapsed":[17725188707009528001,9079109751490757001,3602127523880426501],"name":"Changing Seasons","commit_hash":"e647ca9f91a5e823137122126fe9e980f65d62ea","document_ptz":{"pan":[-999.7861718531644,-499.944688737096],"tilt":0.0,"zoom":0.940975},"document_mode":"DesignMode","view_mode":"Normal","overlays_visible":true,"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":3143874172491239000,"output_index":0,"lambda":false}}],"nodes":[[10316247453530667000,{"inputs":[{"Node":{"node_id":9079109751490757000,"output_index":0,"lambda":false}},{"Node":{"node_id":12796400626461303056,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[7954638344846060000,{"inputs":[{"Node":{"node_id":5991296268862790000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.1875,"green":0.0,"blue":0.0,"alpha":0.203125}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.19140625,"green":0.0,"blue":0.0,"alpha":0.203125}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17021405646895729000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":1.0,"green":0.31764707,"blue":0.15686275,"alpha":1.0}],[0.5,{"red":1.0,"green":0.5686275,"blue":0.25490198,"alpha":1.0}],[1.0,{"red":1.0,"green":0.7294118,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::GradientValueNode"}},"visible":true,"skip_deduplication":false}],[8366826746721323000,{"inputs":[{"Node":{"node_id":5591755359500854000,"output_index":0,"lambda":false}},{"Node":{"node_id":13846904447064916285,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1250460246919467000,{"inputs":[{"Node":{"node_id":4742778578215475000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_std::vector::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[26023588519449590,{"inputs":[{"Node":{"node_id":4002029424845293600,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139],"transform":[-371.95192745983906,4.5550973740038046e-14,0.0,965.1086770605688,766.3711364618157,-61.108677060568766]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12796400626461303056,{"inputs":[{"Node":{"node_id":1250460246919467000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3143874172491239000,{"inputs":[{"Value":{"tagged_value":{"ArtboardGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":18233215297647862000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"IVec2":[0,0]},"exposed":false}},{"Value":{"tagged_value":{"IVec2":[2000,1000]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToArtboardNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}}]},"import_index":0}},{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::AppendArtboardNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15908863353600836000,{"inputs":[{"Node":{"node_id":7094974507355892337,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":350.0},"exposed":false}},{"Node":{"node_id":4373650744391914031,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8895289679682140000,{"inputs":[{"Node":{"node_id":213744308682803360,"output_index":0,"lambda":false}},{"Node":{"node_id":7954638344846060000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17725188707009528000,{"inputs":[{"Node":{"node_id":10316247453530667000,"output_index":0,"lambda":false}},{"Node":{"node_id":17025512774010843000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[5591755359500854000,{"inputs":[{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":1789832635968548900,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16236970157339521798,{"inputs":[{"Node":{"node_id":8895289679682140000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"U64":8},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::InstanceRepeatNode"}},"visible":true,"skip_deduplication":false}],[1789832635968548900,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17855766443650990000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.1764706,"green":0.44313726,"blue":0.05882353,"alpha":1.0}],[0.5,{"red":0.45490196,"green":0.627451,"blue":0.3254902,"alpha":1.0}],[1.0,{"red":1.0,"green":0.5529412,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::GradientValueNode"}},"visible":true,"skip_deduplication":false}],[16084834641749443000,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[1924303400883620400,{"inputs":[{"Value":{"tagged_value":{"VectorData":{"instance":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"line_cap":"Butt","line_join":"Miter","line_join_miter_limit":4.0,"transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_graphic_group":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[12399235852192450000,16255990754021933000,15620668684239604000,5432878891027338000],"remove":[5992115648840007000],"delta":[[12399235852192450000,[3.4492455418381667,-6.252914951989055]],[5432878891027338000,[-0.8525377229081244,-6.779663923182397]],[15620668684239604000,[-7.105427357601002e-15,61.89300411522633]],[16255990754021933000,[3.423868312757215,60.83950617283953]]]},"segments":{"add":[1366074222973177300,9911415907547690000,3820594103877681000,5933636287523951000],"remove":[16939395239973712000],"start_point":[[5933636287523951000,5432878891027338000],[9911415907547690000,16255990754021933000],[1366074222973177300,12399235852192450000],[3820594103877681000,15620668684239604000]],"end_point":[[5933636287523951000,12399235852192450000],[3820594103877681000,5432878891027338000],[9911415907547690000,15620668684239604000],[1366074222973177300,16255990754021933000]],"handle_primary":[[9911415907547690000,[-0.6380090646381761,1.00935799390129]],[1366074222973177300,[-12.729766803840905,34.6776406035666]],[3820594103877681000,[-1.2746024488136916,-0.5300005080526233]],[5933636287523951000,[0.0,0.0]]],"handle_end":[[1366074222973177300,[1.0502464055275982,-1.6615353350607336]],[3820594103877681000,[-11.281207133058956,31.692729766803836]],[9911415907547690000,[1.1025726645520375,0.4584677151070898]],[5933636287523951000,[0.0,0.0]]],"stroke":[[3820594103877681000,0],[9911415907547690000,0],[1366074222973177300,0],[5933636287523951000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":9911415907547690000},{"ty":"End","segment":1366074222973177300}],[{"ty":"Primary","segment":3820594103877681000},{"ty":"End","segment":9911415907547690000}]],"remove_g1_continuous":[[{"ty":"Primary","segment":1366074222973177300},{"ty":"End","segment":5933636287523951000}],[{"ty":"End","segment":3820594103877681000},{"ty":"Primary","segment":16939395239973712000}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_data::modification::VectorModification","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_data::modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2233138531352324200,{"inputs":[{"Node":{"node_id":366962978353611840,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4040070953711778000,{"inputs":[{"Node":{"node_id":15908863353600836000,"output_index":0,"lambda":false}},{"Node":{"node_id":2166474486859326700,"output_index":0,"lambda":false}},{"Node":{"node_id":10690271318666670633,"output_index":0,"lambda":false}},{"Node":{"node_id":12004715210677400127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":360.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[17025512774010843000,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.3155737704918033,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.203125}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4742778578215475000,{"inputs":[{"Node":{"node_id":6102164880094062000,"output_index":0,"lambda":false}},{"Node":{"node_id":8876924567444570473,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10463288500489480000,{"inputs":[{"Node":{"node_id":4600332392291315000,"output_index":0,"lambda":false}},{"Node":{"node_id":4040070953711778000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3602127523880426500,{"inputs":[{"Value":{"tagged_value":{"RasterData":{"instance":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":17725188707009528000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[6102164880094062000,{"inputs":[{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14253625255053304000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4002029424845293600,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[],"delta":[[4570709177617499000,[-62.76543209876538,-6.827160493827164]],[11897064075526275000,[-61.65765794556601,-32.902083082000814]],[15620564416450861000,[-47.66529492455423,-18.042524005486992]],[5755835744378529000,[-17.333333333333343,-33.1358024691358]],[891169987742051100,[-4.148148148148122,-38.03703703703696]],[12582713598977278000,[9.333333333333268,-66.33333333333327]],[10418348123687606000,[-61.3893894663837,-52.000301612710835]],[4839542169175255000,[-127.45378793812174,-12.06205126188287]],[4305429814263425000,[-22.598416051654286,-32.71009758017498]],[9664410344080632000,[-35.276890617605005,-25.55103086414088]],[11874978858302702000,[5.843621399176955,-10.914951989026145]],[7888691908524886000,[4.351165980795637,-8.105624142661181]],[753144493519442600,[-50.013717421124845,21.17283950617286]],[16211201987812043000,[-7.105427357601002e-15,-23.90123456790124]],[16594203120813726000,[-62.53607037678802,-36.02218510909459]],[6358127410693457000,[-37.72290809327849,-10.54183813443079]],[353992768245212100,[-42.27413685969588,-41.62581710194484]],[9934671969500465000,[-43.209876543209866,-14.975308641975468]]]},"segments":{"add":[],"remove":[],"start_point":[],"end_point":[],"handle_primary":[[4590600976245504500,[-6.49657064471878,1.2290809327846404]],[8119312711427333000,[0.0,0.0]],[2092445122112560000,[-7.308641975308667,2.9629629629629903]],[4183498485018509000,[-37.13580246913581,14.485596707818928]],[12441313998107066000,[-4.938271604938336,6.518518518518476]],[14351209823603001000,[0.0,0.0]],[3138315255762406000,[4.038408779149492,-14.5733882030178]],[16362428386097514000,[-23.70370370370371,19.950617283950606]],[3270826560526153000,[-10.966434817733528,4.317749647005792]],[5680639457836474000,[0.0,0.0]],[17948338937502876000,[0.0,0.0]],[15866454419016458000,[-9.913311783442964,6.121455371873111]],[18320159308706247000,[0.0,0.0]],[3359087961315235300,[-0.2881601545358876,-1.8891182956799923]],[2416974091592514600,[0.0,0.0]],[1562499453192082400,[-0.08779149519892826,-1.6680384087791111]],[9552874240071498000,[-5.53086419753086,-0.9657064471879552]]],"handle_end":[[5680639457836474000,[0.2881601545359018,1.8891182956799923]],[7709585677887591000,[-8.603566529492472,0.8779149519890552]],[3359087961315235300,[-7.813443072702299,7.725651577503442]],[2092445122112560000,[-9.086419753086416,21.135802469135797]],[16362428386097514000,[-6.962962962962983,53.17283950617292]],[9552874240071498000,[-7.286694101508885,7.55006858710567]],[2416974091592514600,[37.06995884773662,-14.595336076817532]],[8119312711427333000,[-16.241426611796967,5.355281207133061]],[4590600976245504500,[14.222222222222207,7.989026063100134]],[18320159308706247000,[-41.26200274348419,15.978052126200277]],[17948338937502876000,[-50.30452674897121,26.776406035665325]],[3138315255762406000,[-8.098765432098759,2.947337553780912]],[12441313998107066000,[5.171144805176233,13.506721506057374]],[14351209823603001000,[-7.374485596707803,5.70644718792866]],[3270826560526153000,[-49.33882030178324,27.10562414266127]],[1562499453192082400,[-0.6668238551234532,2.406364346749864]],[15866454419016458000,[2.458161865569238,7.637860082304542]],[4183498485018509000,[-21.94787379972564,36.565157750342905]]],"stroke":[]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_data::modification::VectorModification","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_data::modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[366962978353611840,{"inputs":[{"Node":{"node_id":8366826746721323000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_std::vector::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16379524086934900000,{"inputs":[{"Node":{"node_id":9609388203059839318,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.41796875,"green":0.1028595,"blue":0.1028595,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.421875,"green":0.1038208,"blue":0.1038208,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4600332392291315000,{"inputs":[{"Node":{"node_id":4040070953711778000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Node":{"node_id":11677958249556146000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::AssignColorsNode"}},"visible":true,"skip_deduplication":false}],[7386572856931342000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::PercentageValueNode"}},"visible":true,"skip_deduplication":false}],[4373650744391914031,{"inputs":[{"Node":{"node_id":9641606876402405523,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::ToU32Node"}},"visible":true,"skip_deduplication":false}],[16141281339223525000,{"inputs":[{"Value":{"tagged_value":{"VectorData":{"instance":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"line_cap":"Butt","line_join":"Miter","line_join_miter_limit":4.0,"transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_graphic_group":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[8940743774820468000,11897064075526275000,9664410344080632000,10418348123687606000,16594203120813726000,4839542169175255000,353992768245212100,4305429814263425000,15620564416450861000,4570709177617499000,9934671969500465000,6358127410693457000,753144493519442600,11874978858302702000,7888691908524886000,12582713598977278000,891169987742051100,5755835744378529000,16211201987812043000],"remove":[],"delta":[[8940743774820468000,[0.0,0.0]],[4570709177617499000,[114.716049382716,-90.16049382716052]],[753144493519442600,[136.8395061728395,-177.6172839506173]],[9664410344080632000,[64.51145851883956,11.32880864191867]],[11874978858302702000,[92.39506172839504,-161.41975308641972]],[16594203120813726000,[126.09711290079348,-8.575894451947931]],[4305429814263425000,[91.25136529719612,-51.92090379156713]],[15620564416450861000,[141.77777777777777,-86.60493827160491]],[4839542169175255000,[157.56627079134535,-37.10118604950259]],[5755835744378529000,[28.444444444444457,-210.4567901234568]],[12582713598977278000,[49.135802469135854,-136.33333333333334]],[7888691908524886000,[66.32098765432096,-154.30864197530863]],[10418348123687606000,[112.8352056529406,14.952290638773944]],[11897064075526275000,[72.71938634062775,26.932261408475423]],[9934671969500465000,[125.38271604938268,-124.67901234567891]],[891169987742051100,[63.802469135802426,-190.90123456790127]],[16211201987812043000,[0.0,-231.0]],[6358127410693457000,[115.50617283950618,-132.38271604938265]],[353992768245212100,[114.87770338918835,-41.33714586101814]]]},"segments":{"add":[7709585677887591000,14351209823603001000,18320159308706247000,8119312711427333000,4590600976245504500,17948338937502876000,1562499453192082400,3138315255762406000,2416974091592514600,3270826560526153000,5680639457836474000,3359087961315235300,9552874240071498000,15866454419016458000,4183498485018509000,2092445122112560000,16362428386097514000,12441313998107066000],"remove":[],"start_point":[[2092445122112560000,12582713598977278000],[1562499453192082400,353992768245212100],[18320159308706247000,9664410344080632000],[16362428386097514000,891169987742051100],[12441313998107066000,5755835744378529000],[8119312711427333000,10418348123687606000],[15866454419016458000,11874978858302702000],[14351209823603001000,11897064075526275000],[5680639457836474000,9934671969500465000],[3138315255762406000,4305429814263425000],[4590600976245504500,16594203120813726000],[3270826560526153000,4570709177617499000],[9552874240071498000,753144493519442600],[4183498485018509000,7888691908524886000],[7709585677887591000,8940743774820468000],[17948338937502876000,4839542169175255000],[3359087961315235300,6358127410693457000],[2416974091592514600,15620564416450861000]],"end_point":[[4183498485018509000,12582713598977278000],[3359087961315235300,753144493519442600],[8119312711427333000,16594203120813726000],[7709585677887591000,11897064075526275000],[2092445122112560000,891169987742051100],[3138315255762406000,15620564416450861000],[12441313998107066000,16211201987812043000],[3270826560526153000,9934671969500465000],[18320159308706247000,10418348123687606000],[9552874240071498000,11874978858302702000],[2416974091592514600,4570709177617499000],[14351209823603001000,9664410344080632000],[5680639457836474000,6358127410693457000],[17948338937502876000,353992768245212100],[16362428386097514000,5755835744378529000],[4590600976245504500,4839542169175255000],[1562499453192082400,4305429814263425000],[15866454419016458000,7888691908524886000]],"handle_primary":[[12441313998107066000,[-4.938271604938336,6.518518518518533]],[5680639457836474000,[0.0,0.0]],[2092445122112560000,[-1.5802469135804245,-5.5308641975308035]],[17948338937502876000,[0.0,0.0]],[15866454419016458000,[-10.469135802469168,13.432098765432102]],[3270826560526153000,[-9.086419753086432,-7.506172839506121]],[9552874240071498000,[-21.33333333333331,12.049382716049422]],[3138315255762406000,[-2.469006630399008,-5.902063388586043]],[1562499453192082400,[-15.34246181071461,-3.7168967220297873]],[4183498485018509000,[-6.617283950617207,15.308641975308689]],[3359087961315235300,[2.7654320987655296,-14.419753086419746]],[16362428386097514000,[-14.913580246913511,12.641975308642031]],[7709585677887591000,[0.0,0.0]],[14351209823603001000,[0.0,0.0]],[8119312711427333000,[0.0,0.0]],[2416974091592514600,[0.0,0.0]],[4590600976245504500,[-7.759646437163781,-18.695929243596197]],[18320159308706247000,[0.0,0.0]]],"handle_end":[[15866454419016458000,[0.19753086419757435,13.827160493827137]],[18320159308706247000,[-24.983271918092953,-7.776766653003392]],[14351209823603001000,[5.742854988208705,6.327636391047918]],[5680639457836474000,[-2.7654320987655296,14.419753086419746]],[12441313998107066000,[13.234567901234527,34.5679012345679]],[7709585677887591000,[-42.51530058403631,-10.382498109968708]],[3359087961315235300,[-27.099224819820336,19.753086419753146]],[2092445122112560000,[-20.345679012345613,18.5679012345679]],[17948338937502876000,[25.51458639999055,20.651563178633637]],[2416974091592514600,[9.086419753086377,7.506172839506235]],[3138315255762406000,[-21.33333333333337,3.753086419753061]],[1562499453192082400,[2.0974057383288596,5.01376604938514]],[3270826560526153000,[-13.03703703703701,9.679012345678984]],[4590600976245504500,[-5.92501398131742,10.665547436428083]],[16362428386097514000,[-8.0,38.419753086419746]],[9552874240071498000,[4.938271604938279,11.061728395061806]],[8119312711427333000,[-40.68684029964413,7.631779585305026]],[4183498485018509000,[4.938271604938336,-1.1851851851851052]]],"stroke":[[4590600976245504500,0],[2416974091592514600,0],[3138315255762406000,0],[7709585677887591000,0],[3270826560526153000,0],[1562499453192082400,0],[5680639457836474000,0],[12441313998107066000,0],[14351209823603001000,0],[9552874240071498000,0],[8119312711427333000,0],[16362428386097514000,0],[3359087961315235300,0],[2092445122112560000,0],[18320159308706247000,0],[17948338937502876000,0],[15866454419016458000,0],[4183498485018509000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":1562499453192082400},{"ty":"Primary","segment":3138315255762406000}],[{"ty":"End","segment":2416974091592514600},{"ty":"Primary","segment":3270826560526153000}],[{"ty":"End","segment":5680639457836474000},{"ty":"Primary","segment":3359087961315235300}]],"remove_g1_continuous":[[{"ty":"End","segment":4183498485018509000},{"ty":"Primary","segment":2092445122112560000}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_data::modification::VectorModification","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_data::modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9641606876402405523,{"inputs":[],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::InstanceIndexNode"}},"visible":true,"skip_deduplication":false}],[9609388203059839318,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[799182088624980700,{"inputs":[{"Node":{"node_id":7386572856931342000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::DivideNode"}},"visible":true,"skip_deduplication":false}],[9079109751490757000,{"inputs":[{"Value":{"tagged_value":{"RasterData":{"instance":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"opacity":1.0,"blend_mode":"Normal"}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":2233138531352324200,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[11677958249556146000,{"inputs":[{"Node":{"node_id":17021405646895729000,"output_index":0,"lambda":false}},{"Node":{"node_id":17855766443650990000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BlendMode":"Normal"},"exposed":false}},{"Node":{"node_id":7386572856931342000,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::raster::adjustments::BlendNode"}},"visible":true,"skip_deduplication":false}],[13846904447064916285,{"inputs":[{"Node":{"node_id":16084834641749443000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MirrorNode"}},"visible":true,"skip_deduplication":false}],[7094974507355892337,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[2166474486859326700,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13712392741217151405,{"inputs":[{"Node":{"node_id":5348726859432207000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5348726859432207000,{"inputs":[{"Node":{"node_id":12796400626461303056,"output_index":0,"lambda":false}},{"Node":{"node_id":2233138531352324200,"output_index":0,"lambda":false}},{"Node":{"node_id":799182088624980700,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MorphNode"}},"visible":true,"skip_deduplication":false}],[10690271318666670633,{"inputs":[{"Node":{"node_id":12004715210677400127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.2},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::SubtractNode"}},"visible":true,"skip_deduplication":false}],[3430686124240113700,{"inputs":[{"Node":{"node_id":3602127523880426500,"output_index":0,"lambda":false}},{"Node":{"node_id":16379524086934900000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18233215297647862000,{"inputs":[{"Node":{"node_id":14337610765966946000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,500.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::instances::Instances","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":5}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8876924567444570473,{"inputs":[{"Node":{"node_id":26023588519449590,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MirrorNode"}},"visible":true,"skip_deduplication":false}],[12004715210677400127,{"inputs":[{"Node":{"node_id":3223387122603246085,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.1},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::MaxNode"}},"visible":true,"skip_deduplication":false}],[14250786159408925409,{"inputs":[{"Node":{"node_id":3430686124240113700,"output_index":0,"lambda":false}},{"Node":{"node_id":16236970157339521798,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14337610765966946000,{"inputs":[{"Node":{"node_id":14250786159408925409,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5991296268862790000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[213744308682803360,{"inputs":[{"Value":{"tagged_value":{"GraphicGroup":{"instance":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":10463288500489480000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToElementNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::LayerNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic_element::ToGroupNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14253625255053304000,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139],"transform":[-371.95192745983906,4.5550973740038046e-14,0.0,965.1086770605688,766.3711364618157,-61.108677060568766]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3223387122603246085,{"inputs":[{"Node":{"node_id":9641606876402405523,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"String":"2 - 0.2A"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::ops::MathNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[16141281339223525000,{"persistent_metadata":{"reference":"Path","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Modification"},"widget_override":null}],"output_names":["Vector Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-58,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16379524086934900000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5348726859432207000,{"persistent_metadata":{"reference":"Morph","display_name":"","input_properties":[{"input_data":{"input_name":"Source"},"widget_override":null},{"input_data":{"input_name":"Target"},"widget_override":null},{"input_data":{"input_name":"Time"},"widget_override":null},{"input_data":{"input_name":"Start Index"},"widget_override":null}],"output_names":["Instances"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-32]}}},"network_metadata":null}}],[7386572856931342000,{"persistent_metadata":{"reference":"Percentage Value","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Percentage"},"widget_override":null}],"output_names":["f64"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-39]}}},"network_metadata":null}}],[14250786159408925409,{"persistent_metadata":{"reference":"Merge","display_name":"Leaf Levels","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7094974507355892337,{"persistent_metadata":{"reference":"Rectangle","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Width"},"widget_override":null},{"input_data":{"input_name":"Height"},"widget_override":null},{"input_data":{"input_name":"Individual Corner Radii"},"widget_override":null},{"input_data":{"input_name":"Corner Radius"},"widget_override":null},{"input_data":{"input_name":"Clamped"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-38]}}},"network_metadata":null}}],[3602127523880426500,{"persistent_metadata":{"reference":"Merge","display_name":"Individual Leaf Views","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8895289679682140000,{"persistent_metadata":{"reference":"Merge","display_name":"Depth Shadow","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[2,-45]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16236970157339521798,{"persistent_metadata":{"reference":"Instance Repeat","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9641606876402405523,{"persistent_metadata":{"reference":"Instance Index","display_name":"","input_properties":[],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-36]}}},"network_metadata":null}}],[3223387122603246085,{"persistent_metadata":{"reference":"Math","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-35]}}},"network_metadata":null}}],[1924303400883620400,{"persistent_metadata":{"reference":"Path","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Modification"},"widget_override":null}],"output_names":["Vector Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-44,-19]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4742778578215475000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3430686124240113700,{"persistent_metadata":{"reference":"Merge","display_name":"Solid Backdrop","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":8}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17025512774010843000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4373650744391914031,{"persistent_metadata":{"reference":"To u32","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-37]}}},"network_metadata":null}}],[2233138531352324200,{"persistent_metadata":{"reference":"Cache","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4040070953711778000,{"persistent_metadata":{"reference":"Copy to Points","display_name":"","input_properties":[{"input_data":{"input_name":"Points"},"widget_override":null},{"input_data":{"tooltip":"Artwork to be copied and placed at each point","input_name":"Instance"},"widget_override":null},{"input_data":{"range_min":0,"is_integer":false,"input_name":"Random Scale Min","mode":"Range","min":0,"tooltip":"Minimum range of randomized sizes given to each instance","unit":"x","blank_assist":true,"range_max":2},"widget_override":"number"},{"input_data":{"min":0,"mode":"Range","tooltip":"Minimum range of randomized sizes given to each instance","range_min":0,"range_max":2,"unit":"x","blank_assist":true,"input_name":"Random Scale Max","is_integer":false},"widget_override":"number"},{"input_data":{"mode":"Range","input_name":"Random Scale Bias","is_integer":false,"range_min":-50,"blank_assist":true,"tooltip":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes)","range_max":50},"widget_override":"number"},{"input_data":{"blank_assist":true,"tooltip":"Seed to determine unique variations on all the randomized instance sizes","mode":"Increment","is_integer":true,"min":0,"input_name":"Random Scale Seed"},"widget_override":"number"},{"input_data":{"blank_assist":true,"input_name":"Random Rotation","min":0,"is_integer":false,"max":360,"tooltip":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise","unit":"°","mode":"Range"},"widget_override":"number"},{"input_data":{"min":0,"mode":"Increment","tooltip":"Seed to determine unique variations on all the randomized instance angles","blank_assist":true,"is_integer":true,"input_name":"Random Rotation Seed"},"widget_override":"number"}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-38]}}},"network_metadata":null}}],[2166474486859326700,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[2,-32]}}},"network_metadata":null}}],[14253625255053304000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3143874172491239000,{"persistent_metadata":{"reference":"Artboard","display_name":"","input_properties":[{"input_data":{"input_name":"Artboards"},"widget_override":null},{"input_data":{"input_name":"Contents"},"widget_override":"hidden"},{"input_data":{"x":"X","y":"Y","unit":" px","input_name":"Location"},"widget_override":"vec2"},{"input_data":{"input_name":"Dimensions","y":"H","unit":" px","x":"W"},"widget_override":"vec2"},{"input_data":{"input_name":"Background"},"widget_override":"artboard_background"},{"input_data":{"input_name":"Clip"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[26,-56]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Artboard","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-10,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Append Artboards","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[6,-4]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-2,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10316247453530667000,{"persistent_metadata":{"reference":"Merge","display_name":"Oak Leaf","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":1}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5991296268862790000,{"persistent_metadata":{"reference":"Rectangle","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Width"},"widget_override":null},{"input_data":{"input_name":"Height"},"widget_override":null},{"input_data":{"input_name":"Individual Corner Radii"},"widget_override":null},{"input_data":{"input_name":"Corner Radius"},"widget_override":null},{"input_data":{"input_name":"Clamped"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[26023588519449590,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8366826746721323000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-13]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17855766443650990000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Gradient"},"widget_override":null}],"output_names":["GradientStops"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-40]}}},"network_metadata":null}}],[366962978353611840,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"","input_properties":[{"input_data":{"input_name":"Group of Paths"},"widget_override":null},{"input_data":{"input_name":"Operation"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17021405646895729000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Gradient"},"widget_override":null}],"output_names":["GradientStops"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-41]}}},"network_metadata":null}}],[14337610765966946000,{"persistent_metadata":{"reference":"Merge","display_name":"NOTE: Change seasons with the \"Percentage Value\" parameter","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[14,-52]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9609388203059839318,{"persistent_metadata":{"reference":"Rectangle","display_name":"","input_properties":[{"input_data":{"input_name":"Primary"},"widget_override":null},{"input_data":{"input_name":"Width"},"widget_override":null},{"input_data":{"input_name":"Height"},"widget_override":null},{"input_data":{"input_name":"Individual Corner Radii"},"widget_override":null},{"input_data":{"input_name":"Corner Radius"},"widget_override":null},{"input_data":{"input_name":"Clamped"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10463288500489480000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16084834641749443000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4002029424845293600,{"persistent_metadata":{"reference":"Path","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Modification"},"widget_override":null}],"output_names":["Vector Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17725188707009528000,{"persistent_metadata":{"reference":"Merge","display_name":"Morph","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[9,-29]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[213744308682803360,{"persistent_metadata":{"reference":"Merge","display_name":"Leaves","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1250460246919467000,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"","input_properties":[{"input_data":{"input_name":"Group of Paths"},"widget_override":null},{"input_data":{"input_name":"Operation"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6102164880094062000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5591755359500854000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13846904447064916285,{"persistent_metadata":{"reference":"Mirror","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12796400626461303056,{"persistent_metadata":{"reference":"Cache","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1789832635968548900,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4600332392291315000,{"persistent_metadata":{"reference":"Assign Colors","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Group"},"widget_override":"hidden"},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Stroke"},"widget_override":null},{"input_data":{"input_name":"Gradient"},"widget_override":"assign_colors_gradient"},{"input_data":{"input_name":"Reverse"},"widget_override":null},{"input_data":{"input_name":"Randomize"},"widget_override":null},{"input_data":{"input_name":"Seed"},"widget_override":null},{"input_data":{"input_name":"Repeat Every"},"widget_override":"assign_colors_repeat_every"}],"output_names":["Vector Group"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13712392741217151405,{"persistent_metadata":{"reference":"Cache","display_name":"","input_properties":[{"input_data":{},"widget_override":null}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-5,-32]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15908863353600836000,{"persistent_metadata":{"reference":"Scatter Points","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"range_max":100,"mode":"Range","blank_assist":true,"is_integer":false,"min":0.01,"input_name":"Separation Disk Diameter","range_min":1},"widget_override":"number"},{"input_data":{"is_integer":true,"blank_assist":true,"input_name":"Seed","min":0,"mode":"Increment"},"widget_override":"number"}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-38]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9079109751490757000,{"persistent_metadata":{"reference":"Merge","display_name":"Maple Leaf","input_properties":[{"input_data":{"input_name":"Graphical Data"},"widget_override":null},{"input_data":{"input_name":"Over"},"widget_override":null}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Layer","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Element","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"To Group","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12004715210677400127,{"persistent_metadata":{"reference":"Max","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-35]}}},"network_metadata":null}}],[7954638344846060000,{"persistent_metadata":{"reference":"Fill","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Fill"},"widget_override":null},{"input_data":{"input_name":"Backup Color"},"widget_override":null},{"input_data":{"input_name":"Backup Gradient"},"widget_override":null}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10690271318666670633,{"persistent_metadata":{"reference":"Subtract","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-36]}}},"network_metadata":null}}],[18233215297647862000,{"persistent_metadata":{"reference":"Transform","display_name":"","input_properties":[{"input_data":{"input_name":"Vector Data"},"widget_override":null},{"input_data":{"input_name":"Translation","unit":" px","x":"X","y":"Y"},"widget_override":"vec2"},{"input_data":{"input_name":"Rotation"},"widget_override":"transform_rotation"},{"input_data":{"unit":"x","x":"W","input_name":"Scale","y":"H"},"widget_override":"vec2"},{"input_data":{"input_name":"Skew"},"widget_override":"hidden"},{"input_data":{"input_name":"Pivot"},"widget_override":"hidden"}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_properties":[{"input_data":{},"widget_override":null}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11677958249556146000,{"persistent_metadata":{"reference":"Blend","display_name":"","input_properties":[{"input_data":{"input_name":"Over"},"widget_override":null},{"input_data":{"input_name":"Under"},"widget_override":null},{"input_data":{"input_name":"Blend Mode"},"widget_override":null},{"input_data":{"input_name":"Opacity"},"widget_override":null}],"output_names":["Color"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-41]}}},"network_metadata":null}}],[8876924567444570473,{"persistent_metadata":{"reference":"Mirror","display_name":"","input_properties":[{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null},{"input_data":{},"widget_override":null}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[799182088624980700,{"persistent_metadata":{"reference":"Divide","display_name":"","input_properties":[{"input_data":{"input_name":"Numerator"},"widget_override":null},{"input_data":{"input_name":"Denominator"},"widget_override":null}],"output_names":["Output"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-30]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[287.6272550000002,767.89247],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1278.0,1349.0],"node_graph_top_right":[1980.800048828125,0.0]},"selection_undo_history":[[1924303400883620400,8366826746721323000,16084834641749443000,13846904447064916285,366962978353611840,14253625255053304000,4002029424845293600,6102164880094062000,1250460246919467000,26023588519449590,5591755359500854000,8876924567444570473,4742778578215475000,1789832635968548900,16141281339223525000],[799182088624980700,4002029424845293600,366962978353611840,14253625255053304000,5348726859432207000,4742778578215475000,16084834641749443000,8876924567444570473,1924303400883620400,26023588519449590,16141281339223525000,1789832635968548900,1250460246919467000,13846904447064916285,5591755359500854000,6102164880094062000,8366826746721323000],[8876924567444570473,799182088624980700,26023588519449590,8366826746721323000,16084834641749443000,5591755359500854000,6102164880094062000,16141281339223525000,366962978353611840,1250460246919467000,4002029424845293600,1789832635968548900,1924303400883620400,14253625255053304000,13712392741217151405,13846904447064916285,5348726859432207000,4742778578215475000],[1250460246919467000,16084834641749443000,8366826746721323000,4002029424845293600,799182088624980700,26023588519449590,5348726859432207000,366962978353611840,8876924567444570473,6102164880094062000,13712392741217151405,13846904447064916285,9079109751490757000,5591755359500854000,16141281339223525000,1789832635968548900,1924303400883620400,14253625255053304000,4742778578215475000],[1250460246919467000,5348726859432207000,8366826746721323000,14253625255053304000,5591755359500854000,13846904447064916285,26023588519449590,799182088624980700,4742778578215475000,8876924567444570473,6102164880094062000,1924303400883620400,10316247453530667000,13712392741217151405,366962978353611840,1789832635968548900,4002029424845293600,16084834641749443000,9079109751490757000,16141281339223525000],[4742778578215475000,13712392741217151405,9079109751490757000,8876924567444570473,8366826746721323000,10316247453530667000,5348726859432207000,16084834641749443000,13846904447064916285,5591755359500854000,1789832635968548900,16141281339223525000,1250460246919467000,14253625255053304000,799182088624980700,366962978353611840,4002029424845293600,1924303400883620400,17725188707009528000,26023588519449590,6102164880094062000,17025512774010843000],[5591755359500854000,366962978353611840,4002029424845293600,3602127523880426500,5348726859432207000,13846904447064916285,6102164880094062000,26023588519449590,17025512774010843000,14253625255053304000,17725188707009528000,13712392741217151405,4742778578215475000,1924303400883620400,1789832635968548900,1250460246919467000,16141281339223525000,799182088624980700,8366826746721323000,9079109751490757000,8876924567444570473,10316247453530667000,16084834641749443000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,6102164880094062000,5591755359500854000,14253625255053304000,1789832635968548900,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840],[1789832635968548900,8366826746721323000,366962978353611840,5591755359500854000,4742778578215475000,26023588519449590,8876924567444570473,6102164880094062000,13846904447064916285,16084834641749443000,14253625255053304000],[8366826746721323000,13846904447064916285,26023588519449590,8876924567444570473,366962978353611840,4002029424845293600,1789832635968548900,16084834641749443000,4742778578215475000,6102164880094062000,5591755359500854000,1250460246919467000,14253625255053304000],[8876924567444570473,799182088624980700,5348726859432207000,13846904447064916285,366962978353611840,8366826746721323000,5591755359500854000,4742778578215475000,26023588519449590,4002029424845293600,16084834641749443000,14253625255053304000,1250460246919467000,6102164880094062000,1789832635968548900],[6102164880094062000,16084834641749443000,4742778578215475000,366962978353611840,16141281339223525000,1789832635968548900,26023588519449590,5591755359500854000,8876924567444570473,13846904447064916285,1924303400883620400,799182088624980700,8366826746721323000,4002029424845293600,5348726859432207000,1250460246919467000,14253625255053304000],[1250460246919467000,26023588519449590,13846904447064916285,14253625255053304000,1924303400883620400,16141281339223525000,6102164880094062000,4742778578215475000,5348726859432207000,8366826746721323000,799182088624980700,1789832635968548900,4002029424845293600,16084834641749443000,8876924567444570473,366962978353611840,13712392741217151405,5591755359500854000],[8366826746721323000,8876924567444570473,1924303400883620400,1250460246919467000,26023588519449590,366962978353611840,14253625255053304000,6102164880094062000,4002029424845293600,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900,5348726859432207000,5591755359500854000,799182088624980700,16141281339223525000],[799182088624980700,8366826746721323000,6102164880094062000,26023588519449590,1250460246919467000,1789832635968548900,16084834641749443000,8876924567444570473,4002029424845293600,4742778578215475000,5348726859432207000,13846904447064916285,366962978353611840,14253625255053304000,5591755359500854000],[16084834641749443000,4742778578215475000,6102164880094062000,13846904447064916285,5348726859432207000,1789832635968548900,1250460246919467000,14253625255053304000,799182088624980700,26023588519449590,5591755359500854000,366962978353611840,8366826746721323000,8876924567444570473],[8876924567444570473,26023588519449590,366962978353611840,1250460246919467000,4742778578215475000,14253625255053304000,5591755359500854000,13846904447064916285,6102164880094062000,4002029424845293600,16084834641749443000,8366826746721323000,5348726859432207000,799182088624980700,1789832635968548900],[5591755359500854000,8876924567444570473,16141281339223525000,4002029424845293600,1789832635968548900,1250460246919467000,5348726859432207000,4742778578215475000,6102164880094062000,366962978353611840,16084834641749443000,8366826746721323000,1924303400883620400,799182088624980700,26023588519449590,14253625255053304000,13846904447064916285],[1924303400883620400,8876924567444570473,1789832635968548900,4002029424845293600,799182088624980700,16084834641749443000,13846904447064916285,8366826746721323000,26023588519449590,6102164880094062000,13712392741217151405,5348726859432207000,366962978353611840,16141281339223525000,14253625255053304000,4742778578215475000,5591755359500854000,1250460246919467000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,366962978353611840,4742778578215475000,5591755359500854000,6102164880094062000],[14253625255053304000,8366826746721323000,366962978353611840,1789832635968548900,8876924567444570473,5591755359500854000,4742778578215475000,6102164880094062000,13846904447064916285],[4742778578215475000,5591755359500854000,13846904447064916285,366962978353611840,14253625255053304000,8876924567444570473,16084834641749443000,8366826746721323000,1789832635968548900,26023588519449590,6102164880094062000],[1789832635968548900,5591755359500854000,4742778578215475000,8366826746721323000,13846904447064916285,6102164880094062000,1250460246919467000,16084834641749443000,8876924567444570473,14253625255053304000,4002029424845293600,366962978353611840,26023588519449590],[1789832635968548900,5348726859432207000,5591755359500854000,8876924567444570473,8366826746721323000,26023588519449590,6102164880094062000,366962978353611840,16084834641749443000,4742778578215475000,13846904447064916285,14253625255053304000,1250460246919467000,4002029424845293600],[16084834641749443000,4002029424845293600,8366826746721323000,5591755359500854000,6102164880094062000,14253625255053304000,4742778578215475000,8876924567444570473,13846904447064916285,16141281339223525000,1924303400883620400,26023588519449590,1250460246919467000,366962978353611840,1789832635968548900,5348726859432207000],[1789832635968548900,13846904447064916285,1924303400883620400,6102164880094062000,4742778578215475000,8876924567444570473,16084834641749443000,5591755359500854000,13712392741217151405,366962978353611840,16141281339223525000,26023588519449590,8366826746721323000,1250460246919467000,5348726859432207000,4002029424845293600,14253625255053304000],[6102164880094062000,26023588519449590,8876924567444570473,4002029424845293600,4742778578215475000,8366826746721323000,5348726859432207000,5591755359500854000,16141281339223525000,13846904447064916285,1789832635968548900,1250460246919467000,14253625255053304000,16084834641749443000,366962978353611840,1924303400883620400],[1250460246919467000,13712392741217151405,1924303400883620400,16141281339223525000,6102164880094062000,8876924567444570473,366962978353611840,13846904447064916285,8366826746721323000,14253625255053304000,16084834641749443000,1789832635968548900,26023588519449590,4742778578215475000,5348726859432207000,4002029424845293600,5591755359500854000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,9079109751490757000,5348726859432207000],[10316247453530667000,4742778578215475000,8366826746721323000,1250460246919467000,6102164880094062000,366962978353611840,5591755359500854000,9079109751490757000,5348726859432207000],[4742778578215475000,9079109751490757000,17725188707009528000,10316247453530667000,5591755359500854000,8366826746721323000,5348726859432207000,366962978353611840,1250460246919467000,6102164880094062000],[1250460246919467000,14253625255053304000,1789832635968548900,17725188707009528000,5348726859432207000,5591755359500854000,8366826746721323000,9079109751490757000,10316247453530667000,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840,6102164880094062000],[4742778578215475000,5348726859432207000,14253625255053304000,10316247453530667000,9079109751490757000,366962978353611840,1789832635968548900,13846904447064916285,5591755359500854000,1250460246919467000,6102164880094062000,799182088624980700,8876924567444570473,8366826746721323000,17725188707009528000],[9079109751490757000,13846904447064916285,5591755359500854000,5348726859432207000,366962978353611840,799182088624980700,4742778578215475000,8876924567444570473,1789832635968548900,14253625255053304000,17725188707009528000,8366826746721323000,10316247453530667000,6102164880094062000,16084834641749443000,26023588519449590,1250460246919467000],[10316247453530667000,366962978353611840,17025512774010843000,799182088624980700,6102164880094062000,16084834641749443000,8366826746721323000,17725188707009528000,5348726859432207000,14253625255053304000,4002029424845293600,1250460246919467000,26023588519449590,9079109751490757000,13846904447064916285,1789832635968548900,5591755359500854000,4742778578215475000,13712392741217151405,8876924567444570473],[17725188707009528000,1250460246919467000,1789832635968548900,366962978353611840,5591755359500854000,9079109751490757000,14253625255053304000,5348726859432207000,4742778578215475000,6102164880094062000,10316247453530667000,799182088624980700,4002029424845293600,13846904447064916285,1924303400883620400,17025512774010843000,8876924567444570473,26023588519449590,13712392741217151405,16141281339223525000,16084834641749443000,8366826746721323000],[9641606876402405523,7094974507355892337,2166474486859326700,4373650744391914031,15908863353600836000,10690271318666670633,5348726859432207000,3223387122603246085,799182088624980700,17725188707009528000,4040070953711778000,12004715210677400127,13712392741217151405],[4040070953711778000,10690271318666670633,9641606876402405523,799182088624980700,12004715210677400127,13712392741217151405,17725188707009528000,2166474486859326700,4373650744391914031,7094974507355892337,3223387122603246085,15908863353600836000,17025512774010843000,5348726859432207000],[10690271318666670633,5348726859432207000,17725188707009528000,3223387122603246085,12004715210677400127,13712392741217151405,1250460246919467000,4373650744391914031,799182088624980700,9641606876402405523,4040070953711778000,7094974507355892337,15908863353600836000,17025512774010843000,2166474486859326700],[7094974507355892337,3223387122603246085,13712392741217151405,10316247453530667000,15908863353600836000,12004715210677400127,4040070953711778000,1250460246919467000,799182088624980700,17725188707009528000,2166474486859326700,5348726859432207000,9641606876402405523,10690271318666670633,17025512774010843000,4373650744391914031],[13712392741217151405,17025512774010843000,15908863353600836000,12004715210677400127,10690271318666670633,17725188707009528000,4373650744391914031,7094974507355892337,3602127523880426500,2166474486859326700,799182088624980700,10316247453530667000,5348726859432207000,3223387122603246085,4040070953711778000,1250460246919467000,9641606876402405523],[17025512774010843000,4040070953711778000,5348726859432207000,12004715210677400127,17725188707009528000,3602127523880426500,10690271318666670633,7094974507355892337,3223387122603246085,1250460246919467000,4742778578215475000,4002029424845293600,10316247453530667000,799182088624980700,4373650744391914031,9641606876402405523,2166474486859326700,13712392741217151405,15908863353600836000],[17725188707009528000,17025512774010843000,13712392741217151405,10690271318666670633,7094974507355892337,12004715210677400127,3223387122603246085,26023588519449590,15908863353600836000,10316247453530667000,3602127523880426500,4002029424845293600,799182088624980700,5348726859432207000,4373650744391914031,9641606876402405523,4742778578215475000,4040070953711778000,2166474486859326700,1250460246919467000],[2166474486859326700,1250460246919467000,3223387122603246085,9641606876402405523,8366826746721323000,799182088624980700,8876924567444570473,16141281339223525000,10316247453530667000,13846904447064916285,26023588519449590,7094974507355892337,15908863353600836000,3602127523880426500,4742778578215475000,5348726859432207000,17025512774010843000,6102164880094062000,4040070953711778000,14253625255053304000,17725188707009528000,10690271318666670633,4002029424845293600,12004715210677400127,13712392741217151405,16084834641749443000,4373650744391914031],[1250460246919467000,3223387122603246085,10316247453530667000,5348726859432207000,2166474486859326700,6102164880094062000,17725188707009528000,12004715210677400127,3602127523880426500,4742778578215475000,4373650744391914031,8876924567444570473,1789832635968548900,799182088624980700,17025512774010843000,4040070953711778000,7094974507355892337,9641606876402405523,5591755359500854000,4002029424845293600,26023588519449590,13712392741217151405,15908863353600836000,16141281339223525000,1924303400883620400,8366826746721323000,13846904447064916285,10690271318666670633,16084834641749443000,14253625255053304000],[13846904447064916285,4373650744391914031,4742778578215475000,366962978353611840,4002029424845293600,17725188707009528000,17025512774010843000,3223387122603246085,15908863353600836000,8876924567444570473,1924303400883620400,8366826746721323000,6102164880094062000,12004715210677400127,16141281339223525000,10316247453530667000,3602127523880426500,1789832635968548900,799182088624980700,7094974507355892337,2166474486859326700,26023588519449590,10690271318666670633,14253625255053304000,1250460246919467000,4040070953711778000,9641606876402405523,13712392741217151405,16084834641749443000,5348726859432207000,5591755359500854000],[9079109751490757000],[17725188707009528000],[13712392741217151405,17725188707009528000,5348726859432207000,17025512774010843000,2166474486859326700],[17725188707009528000,2166474486859326700,17025512774010843000,5348726859432207000,1250460246919467000,13712392741217151405],[2166474486859326700,10316247453530667000,1250460246919467000,17025512774010843000,17725188707009528000,13712392741217151405,5348726859432207000],[17025512774010843000,2166474486859326700,17725188707009528000,5348726859432207000,13712392741217151405,9079109751490757000,1250460246919467000,10316247453530667000],[17025512774010843000,13712392741217151405,8366826746721323000,2166474486859326700,1250460246919467000,5348726859432207000,9079109751490757000,10316247453530667000,5591755359500854000,17725188707009528000],[6102164880094062000,5591755359500854000,17025512774010843000,17725188707009528000,9079109751490757000,1250460246919467000,2166474486859326700,8366826746721323000,10316247453530667000,5348726859432207000,366962978353611840,13712392741217151405],[6102164880094062000,4742778578215475000,1250460246919467000,366962978353611840,1789832635968548900,14253625255053304000,5591755359500854000,2166474486859326700,13712392741217151405,17025512774010843000,17725188707009528000,9079109751490757000,10316247453530667000,5348726859432207000,13846904447064916285,8366826746721323000],[13846904447064916285,16084834641749443000,1789832635968548900,2166474486859326700,5348726859432207000,26023588519449590,1250460246919467000,6102164880094062000,366962978353611840,13712392741217151405,5591755359500854000,9079109751490757000,10316247453530667000,8876924567444570473,17725188707009528000,17025512774010843000,8366826746721323000,14253625255053304000,4742778578215475000,1924303400883620400],[9079109751490757000,366962978353611840,8876924567444570473,2166474486859326700,5348726859432207000,26023588519449590,13712392741217151405,14253625255053304000,10316247453530667000,1924303400883620400,17025512774010843000,6102164880094062000,16084834641749443000,5591755359500854000,1789832635968548900,13846904447064916285,1250460246919467000,17725188707009528000,8366826746721323000,4742778578215475000,4002029424845293600],[4002029424845293600,2166474486859326700,1924303400883620400,16084834641749443000,17725188707009528000,4742778578215475000,13846904447064916285,16141281339223525000,9079109751490757000,6102164880094062000,5591755359500854000,13712392741217151405,26023588519449590,10316247453530667000,17025512774010843000,5348726859432207000,1789832635968548900,366962978353611840,1250460246919467000,8876924567444570473,14253625255053304000,8366826746721323000],[16141281339223525000,4002029424845293600,4742778578215475000,8876924567444570473,799182088624980700,26023588519449590],[16141281339223525000,4742778578215475000,799182088624980700,4002029424845293600,1250460246919467000,26023588519449590,8876924567444570473,6102164880094062000],[14253625255053304000,8876924567444570473,1924303400883620400,1250460246919467000,799182088624980700,16141281339223525000,4742778578215475000,6102164880094062000,26023588519449590,4002029424845293600],[1924303400883620400,6102164880094062000,799182088624980700,1250460246919467000,26023588519449590,5348726859432207000,16141281339223525000,8876924567444570473,4002029424845293600,4742778578215475000,14253625255053304000],[8876924567444570473,799182088624980700,26023588519449590,14253625255053304000,6102164880094062000,1924303400883620400,16141281339223525000,4002029424845293600,366962978353611840,5348726859432207000,4742778578215475000,1250460246919467000],[26023588519449590,4742778578215475000,8366826746721323000,8876924567444570473,1250460246919467000,5348726859432207000,366962978353611840,14253625255053304000,799182088624980700,1924303400883620400,6102164880094062000,16141281339223525000,4002029424845293600],[1924303400883620400,799182088624980700,8366826746721323000,14253625255053304000,16141281339223525000,17725188707009528000,1250460246919467000,26023588519449590,5348726859432207000,4002029424845293600,6102164880094062000,4742778578215475000,8876924567444570473,366962978353611840],[1250460246919467000,8876924567444570473,14253625255053304000,16141281339223525000,1924303400883620400,17725188707009528000,4742778578215475000,13846904447064916285,6102164880094062000,8366826746721323000,16084834641749443000,17025512774010843000,4002029424845293600,799182088624980700,26023588519449590,366962978353611840,5348726859432207000],[14253625255053304000,26023588519449590,4742778578215475000,16084834641749443000,6102164880094062000,366962978353611840,17725188707009528000,799182088624980700,1924303400883620400,16141281339223525000,5591755359500854000,4002029424845293600,1250460246919467000,13846904447064916285,8876924567444570473,5348726859432207000,8366826746721323000,17025512774010843000],[799182088624980700,5591755359500854000,1789832635968548900,8366826746721323000,17025512774010843000,1250460246919467000,26023588519449590,13846904447064916285,1924303400883620400,16084834641749443000,5348726859432207000,14253625255053304000,4742778578215475000,6102164880094062000,8876924567444570473,366962978353611840,17725188707009528000,16141281339223525000,4002029424845293600],[8366826746721323000,4742778578215475000,10316247453530667000,26023588519449590,5348726859432207000,9079109751490757000,799182088624980700,13846904447064916285,14253625255053304000,1789832635968548900,366962978353611840,8876924567444570473,16084834641749443000,17725188707009528000,17025512774010843000,5591755359500854000,16141281339223525000,1924303400883620400,1250460246919467000,6102164880094062000,4002029424845293600],[16084834641749443000,17725188707009528000,16141281339223525000,799182088624980700,14253625255053304000,13712392741217151405,8366826746721323000,17025512774010843000,5348726859432207000,8876924567444570473,4002029424845293600,9079109751490757000,6102164880094062000,1250460246919467000,5591755359500854000,4742778578215475000,1789832635968548900,10316247453530667000,13846904447064916285,366962978353611840,26023588519449590,1924303400883620400],[16084834641749443000,14253625255053304000,1789832635968548900,8876924567444570473,5591755359500854000,366962978353611840,2166474486859326700,17725188707009528000,13712392741217151405,17025512774010843000,4002029424845293600,10316247453530667000,1924303400883620400,26023588519449590,1250460246919467000,9079109751490757000,8366826746721323000,16141281339223525000,799182088624980700,5348726859432207000,13846904447064916285,4742778578215475000,6102164880094062000],[3602127523880426500],[5591755359500854000,8366826746721323000],[6102164880094062000,2233138531352324200,5591755359500854000,8366826746721323000,366962978353611840],[8366826746721323000,13846904447064916285,6102164880094062000,8876924567444570473,5591755359500854000,366962978353611840,2233138531352324200,4742778578215475000,14253625255053304000,1789832635968548900],[13846904447064916285,2233138531352324200,8876924567444570473,366962978353611840,1924303400883620400,1789832635968548900,14253625255053304000,5591755359500854000,16084834641749443000,8366826746721323000,26023588519449590,4742778578215475000,6102164880094062000],[14253625255053304000,4742778578215475000,6102164880094062000,1789832635968548900,12796400626461303056,2233138531352324200,8876924567444570473,26023588519449590,8366826746721323000,366962978353611840,13846904447064916285,1924303400883620400,1250460246919467000,16084834641749443000,5591755359500854000],[4002029424845293600,366962978353611840,1789832635968548900,14253625255053304000,4742778578215475000,13846904447064916285,1924303400883620400,2233138531352324200,1250460246919467000,6102164880094062000,16084834641749443000,12796400626461303056,5591755359500854000,8366826746721323000,26023588519449590,8876924567444570473],[4002029424845293600,14253625255053304000,366962978353611840,1924303400883620400,12796400626461303056,5591755359500854000,16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,13846904447064916285,8366826746721323000,2233138531352324200,1250460246919467000,6102164880094062000,8876924567444570473,4742778578215475000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,17725188707009528000,9079109751490757000],[3602127523880426500],[9079109751490757000],[2233138531352324200,9079109751490757000],[2233138531352324200,8366826746721323000,366962978353611840,5591755359500854000,9079109751490757000],[366962978353611840,2233138531352324200,5591755359500854000,8366826746721323000,6102164880094062000,9079109751490757000],[5591755359500854000,9079109751490757000,13846904447064916285,2233138531352324200,366962978353611840,1789832635968548900,14253625255053304000,6102164880094062000,8366826746721323000],[1924303400883620400,13846904447064916285,366962978353611840,14253625255053304000,8366826746721323000,2233138531352324200,16084834641749443000,5591755359500854000,6102164880094062000,9079109751490757000,1789832635968548900],[366962978353611840,8366826746721323000,6102164880094062000,14253625255053304000,2233138531352324200,1924303400883620400,9079109751490757000,5591755359500854000,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900],[14253625255053304000,1924303400883620400,26023588519449590,5591755359500854000,16084834641749443000,1789832635968548900,9079109751490757000,13846904447064916285,366962978353611840,6102164880094062000,4742778578215475000,4002029424845293600,2233138531352324200,8366826746721323000],[1789832635968548900,26023588519449590,5591755359500854000,1924303400883620400,16084834641749443000,13846904447064916285,4742778578215475000,9079109751490757000,366962978353611840,8876924567444570473,2233138531352324200,14253625255053304000,8366826746721323000,4002029424845293600,6102164880094062000],[5591755359500854000,16141281339223525000,4742778578215475000,14253625255053304000,26023588519449590,2233138531352324200,13846904447064916285,1789832635968548900,1924303400883620400,16084834641749443000,8366826746721323000,8876924567444570473,6102164880094062000,9079109751490757000,366962978353611840,4002029424845293600],[16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,8876924567444570473,13846904447064916285,1924303400883620400,2233138531352324200,8366826746721323000,10316247453530667000,5591755359500854000,4742778578215475000,6102164880094062000,366962978353611840,4002029424845293600,9079109751490757000,14253625255053304000],[4002029424845293600,2233138531352324200,1789832635968548900,1924303400883620400,16084834641749443000,1250460246919467000,5591755359500854000,4742778578215475000,14253625255053304000,9079109751490757000,8876924567444570473,10316247453530667000,13846904447064916285,6102164880094062000,8366826746721323000,26023588519449590,12796400626461303056,366962978353611840,16141281339223525000],[]],"selection_redo_history":[]}}},"collapsed":[17725188707009528001,9079109751490757001,3602127523880426501],"name":"Changing Seasons","commit_hash":"e647ca9f91a5e823137122126fe9e980f65d62ea","document_ptz":{"pan":[-999.7861718531644,-499.944688737096],"tilt":0.0,"zoom":0.940975,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 3981cfbbbf..80963323de 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -30,7 +30,7 @@ use glam::{DAffine2, DVec2, IVec2}; use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput, NodeNetwork, OldNodeNetwork}; use graphene_core::raster::BlendMode; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::vector::style::ViewMode; use graphene_std::renderer::{ClickTarget, Quad}; use graphene_std::vector::{PointId, path_bool_lib}; @@ -864,7 +864,7 @@ impl MessageHandler> for DocumentMessag responses.add(DocumentMessage::AddTransaction); - let layer = graph_modification_utils::new_image_layer(ImageFrameTable::new(image), layer_node_id, self.new_layer_parent(true), responses); + let layer = graph_modification_utils::new_image_layer(RasterDataTable::new(image), layer_node_id, self.new_layer_parent(true), responses); if let Some(name) = name { responses.add(NodeGraphMessage::SetDisplayName { diff --git a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs index a6e3fb38e9..e95c7e9d98 100644 --- a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs +++ b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs @@ -6,7 +6,7 @@ use bezier_rs::Subpath; use glam::{DAffine2, DVec2, IVec2}; use graph_craft::document::NodeId; use graphene_core::raster::BlendMode; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::text::{Font, TypesettingConfig}; use graphene_core::vector::PointId; use graphene_core::vector::VectorModificationType; @@ -66,7 +66,7 @@ pub enum GraphOperationMessage { }, NewBitmapLayer { id: NodeId, - image_frame: ImageFrameTable, + image_frame: RasterDataTable, parent: LayerNodeIdentifier, insert_index: usize, }, diff --git a/editor/src/messages/portfolio/document/graph_operation/utility_types.rs b/editor/src/messages/portfolio/document/graph_operation/utility_types.rs index 4cc1411e58..d80faad2e9 100644 --- a/editor/src/messages/portfolio/document/graph_operation/utility_types.rs +++ b/editor/src/messages/portfolio/document/graph_operation/utility_types.rs @@ -9,7 +9,7 @@ use graph_craft::concrete; use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput}; use graphene_core::raster::BlendMode; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::text::{Font, TypesettingConfig}; use graphene_core::vector::brush_stroke::BrushStroke; use graphene_core::vector::style::{Fill, Stroke}; @@ -209,11 +209,11 @@ impl<'a> ModifyInputsContext<'a> { self.network_interface.move_node_to_chain_start(&stroke_id, layer, &[]); } - pub fn insert_image_data(&mut self, image_frame: ImageFrameTable, layer: LayerNodeIdentifier) { + pub fn insert_image_data(&mut self, image_frame: RasterDataTable, layer: LayerNodeIdentifier) { let transform = resolve_document_node_type("Transform").expect("Transform node does not exist").default_node_template(); let image = resolve_document_node_type("Image") .expect("Image node does not exist") - .node_template_input_override([Some(NodeInput::value(TaggedValue::None, false)), Some(NodeInput::value(TaggedValue::ImageFrame(image_frame), false))]); + .node_template_input_override([Some(NodeInput::value(TaggedValue::None, false)), Some(NodeInput::value(TaggedValue::RasterData(image_frame), false))]); let image_id = NodeId::new(); self.network_interface.insert_node(image_id, image, &[]); diff --git a/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs b/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs index bd5fab4e51..6a3714aca2 100644 --- a/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs +++ b/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs @@ -15,7 +15,7 @@ use graph_craft::concrete; use graph_craft::document::value::*; use graph_craft::document::*; use graphene_core::raster::brush_cache::BrushCache; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::raster::{CellularDistanceFunction, CellularReturnType, Color, DomainWarpType, FractalType, NoiseType, RedGreenBlueAlpha}; use graphene_core::text::{Font, TypesettingConfig}; use graphene_core::transform::Footprint; @@ -608,8 +608,8 @@ fn static_nodes() -> Vec { exports: vec![NodeInput::node(NodeId(3), 0)], nodes: [ DocumentNode { - inputs: vec![NodeInput::network(concrete!(ImageFrameTable), 0)], - implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::IntoNode<_, ImageFrameTable>")), + inputs: vec![NodeInput::network(concrete!(RasterDataTable), 0)], + implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::IntoNode<_, RasterDataTable>")), ..Default::default() }, DocumentNode { @@ -636,7 +636,7 @@ fn static_nodes() -> Vec { .collect(), ..Default::default() }), - inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)], ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { @@ -852,7 +852,7 @@ fn static_nodes() -> Vec { nodes: [ DocumentNode { inputs: vec![ - NodeInput::network(concrete!(ImageFrameTable), 0), + NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Red), false), ], implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")), @@ -861,7 +861,7 @@ fn static_nodes() -> Vec { }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(ImageFrameTable), 0), + NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Green), false), ], implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")), @@ -870,7 +870,7 @@ fn static_nodes() -> Vec { }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(ImageFrameTable), 0), + NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Blue), false), ], implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")), @@ -879,7 +879,7 @@ fn static_nodes() -> Vec { }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(ImageFrameTable), 0), + NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Alpha), false), ], implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::raster::adjustments::ExtractChannelNode")), @@ -893,7 +893,7 @@ fn static_nodes() -> Vec { .collect(), ..Default::default() }), - inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)], ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { @@ -959,13 +959,13 @@ fn static_nodes() -> Vec { exports: vec![NodeInput::node(NodeId(0), 0), NodeInput::node(NodeId(1), 0)], nodes: [ DocumentNode { - inputs: vec![NodeInput::network(concrete!(ImageFrameTable), 0), NodeInput::value(TaggedValue::XY(XY::X), false)], + inputs: vec![NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::value(TaggedValue::XY(XY::X), false)], implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::ExtractXyNode")), manual_composition: Some(generic!(T)), ..Default::default() }, DocumentNode { - inputs: vec![NodeInput::network(concrete!(ImageFrameTable), 0), NodeInput::value(TaggedValue::XY(XY::Y), false)], + inputs: vec![NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::value(TaggedValue::XY(XY::Y), false)], implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("graphene_core::ops::ExtractXyNode")), manual_composition: Some(generic!(T)), ..Default::default() @@ -978,7 +978,7 @@ fn static_nodes() -> Vec { ..Default::default() }), - inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)], ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { @@ -1029,7 +1029,7 @@ fn static_nodes() -> Vec { exports: vec![NodeInput::node(NodeId(0), 0)], nodes: vec![DocumentNode { inputs: vec![ - NodeInput::network(concrete!(ImageFrameTable), 0), + NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::network(concrete!(Vec), 1), NodeInput::network(concrete!(BrushCache), 2), ], @@ -1044,7 +1044,7 @@ fn static_nodes() -> Vec { ..Default::default() }), inputs: vec![ - NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true), + NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true), NodeInput::value(TaggedValue::BrushStrokes(Vec::new()), false), NodeInput::value(TaggedValue::BrushCache(BrushCache::new_proto()), false), ], @@ -1083,7 +1083,7 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::proto("graphene_core::memo::MemoNode"), - inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)], manual_composition: Some(concrete!(Context)), ..Default::default() }, @@ -1102,7 +1102,7 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::proto("graphene_core::memo::ImpureMemoNode"), - inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)], manual_composition: Some(concrete!(Context)), ..Default::default() }, @@ -1784,7 +1784,7 @@ fn static_nodes() -> Vec { ..Default::default() }, DocumentNode { - inputs: vec![NodeInput::network(concrete!(ImageFrameTable), 0), NodeInput::node(NodeId(0), 0)], + inputs: vec![NodeInput::network(concrete!(RasterDataTable), 0), NodeInput::node(NodeId(0), 0)], manual_composition: Some(generic!(T)), implementation: DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier::new("wgpu_executor::UploadTextureNode")), ..Default::default() @@ -1802,7 +1802,7 @@ fn static_nodes() -> Vec { .collect(), ..Default::default() }), - inputs: vec![NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true)], ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { @@ -1882,7 +1882,7 @@ fn static_nodes() -> Vec { // document_node: DocumentNode { // implementation: DocumentNodeImplementation::proto("graphene_core::raster::CurvesNode"), // inputs: vec![ - // NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true), + // NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true), // NodeInput::value(TaggedValue::Curve(Default::default()), false), // ], // ..Default::default() @@ -2646,7 +2646,7 @@ fn static_nodes() -> Vec { // exports: vec![NodeInput::node(NodeId(1), 0)], // nodes: [ // DocumentNode { -// inputs: vec![NodeInput::network(concrete!(ImageFrameTable), 0)], +// inputs: vec![NodeInput::network(concrete!(RasterDataTable), 0)], // implementation: DocumentNodeImplementation::proto("graphene_core::memo::MonitorNode"), // manual_composition: Some(concrete!(Context)), // skip_deduplication: true, @@ -2684,7 +2684,7 @@ fn static_nodes() -> Vec { // ..Default::default() // }), // inputs: vec![ -// NodeInput::value(TaggedValue::ImageFrame(ImageFrameTable::default()), true), +// NodeInput::value(TaggedValue::RasterData(RasterDataTable::default()), true), // NodeInput::scope("editor-api"), // NodeInput::value(TaggedValue::ImaginateController(Default::default()), false), // NodeInput::value(TaggedValue::F64(0.), false), // Remember to keep index used in `ImaginateRandom` updated with this entry's index diff --git a/editor/src/messages/portfolio/document/node_graph/node_properties.rs b/editor/src/messages/portfolio/document/node_graph/node_properties.rs index d443360b1d..3053af5727 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_properties.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_properties.rs @@ -12,7 +12,7 @@ use graph_craft::Type; use graph_craft::document::value::TaggedValue; use graph_craft::document::{DocumentNode, DocumentNodeImplementation, NodeId, NodeInput}; use graphene_core::raster::curve::Curve; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::raster::{ BlendMode, CellularDistanceFunction, CellularReturnType, Color, DomainWarpType, FractalType, LuminanceCalculation, NoiseType, RedGreenBlue, RedGreenBlueAlpha, RelativeAbsolute, SelectiveColorChoice, @@ -22,14 +22,14 @@ use graphene_core::vector::generator_nodes::grid; use graphene_core::vector::misc::CentroidType; use graphene_core::vector::style::{GradientType, LineCap, LineJoin}; use graphene_std::animation::RealTimeMode; -use graphene_std::application_io::TextureFrameTable; +use graphene_std::application_io::TextureDataTable; use graphene_std::ops::XY; use graphene_std::transform::{Footprint, ReferencePoint}; use graphene_std::vector::VectorDataTable; use graphene_std::vector::misc::ArcType; use graphene_std::vector::misc::{BooleanOperation, GridType}; use graphene_std::vector::style::{Fill, FillChoice, FillType, GradientStops}; -use graphene_std::{GraphicGroupTable, NodeInputDecleration, RasterFrame}; +use graphene_std::{GraphicGroupTable, NodeInputDecleration, RasterDataType}; pub(crate) fn string_properties(text: &str) -> Vec { let widget = TextLabel::new(text).widget_holder(); @@ -190,7 +190,7 @@ pub(crate) fn property_from_type( // GRAPHICAL DATA TYPES // ==================== Some(x) if x == TypeId::of::() => vector_data_widget(default_info).into(), - Some(x) if x == TypeId::of::() || x == TypeId::of::>() || x == TypeId::of::() => raster_widget(default_info).into(), + Some(x) if x == TypeId::of::() || x == TypeId::of::>() || x == TypeId::of::() => raster_widget(default_info).into(), Some(x) if x == TypeId::of::() => group_widget(default_info).into(), // ============ // STRUCT TYPES @@ -198,7 +198,7 @@ pub(crate) fn property_from_type( Some(x) if x == TypeId::of::() => color_widget(default_info, ColorInput::default().allow_none(false)), Some(x) if x == TypeId::of::>() => color_widget(default_info, ColorInput::default().allow_none(true)), Some(x) if x == TypeId::of::() => color_widget(default_info, ColorInput::default().allow_none(false)), - Some(x) if x == TypeId::of::() => font_widget(default_info).into(), + Some(x) if x == TypeId::of::() => font_widget(default_info), Some(x) if x == TypeId::of::() => curve_widget(default_info), Some(x) if x == TypeId::of::() => footprint_widget(default_info, &mut extra_widgets), // =============================== diff --git a/editor/src/messages/portfolio/document/node_graph/node_properties_imaginate.rs b/editor/src/messages/portfolio/document/node_graph/node_properties_imaginate.rs index 7034e4afd6..255bff60e1 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_properties_imaginate.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_properties_imaginate.rs @@ -263,7 +263,7 @@ // // let transform = context // // .executor -// // .introspect_node_in_network(context.network, &imaginate_node, |network| network.inputs.first().copied(), |frame: &ImageFrame| frame.transform) +// // .introspect_node_in_network(context.network, &imaginate_node, |network| network.inputs.first().copied(), |frame: &RasterData| frame.transform) // // .unwrap_or_default(); // let image_size = context // .executor @@ -283,7 +283,7 @@ // .map(|(node_id, _)| node_id) // .copied() // }, -// |frame: &IORecord<(), ImageFrame>| (frame.output.image.width, frame.output.image.height), +// |frame: &IORecord<(), RasterData>| (frame.output.image.width, frame.output.image.height), // ) // .unwrap_or_default(); diff --git a/editor/src/messages/portfolio/document/node_graph/utility_types.rs b/editor/src/messages/portfolio/document/node_graph/utility_types.rs index b2d5dc5d29..4e6f8996f4 100644 --- a/editor/src/messages/portfolio/document/node_graph/utility_types.rs +++ b/editor/src/messages/portfolio/document/node_graph/utility_types.rs @@ -17,7 +17,7 @@ pub enum FrontendGraphDataType { impl FrontendGraphDataType { fn with_type(input: &Type) -> Self { match TaggedValue::from_type_or_none(input) { - TaggedValue::Image(_) | TaggedValue::ImageFrame(_) => Self::Raster, + TaggedValue::Image(_) | TaggedValue::RasterData(_) => Self::Raster, TaggedValue::Subpaths(_) | TaggedValue::VectorData(_) => Self::VectorData, TaggedValue::U32(_) | TaggedValue::U64(_) diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 52782b3d13..d6e528cb76 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -485,7 +485,6 @@ impl MessageHandler> for PortfolioMes ("graphene_core::raster::GradientMapNode", "graphene_core::raster::adjustments::GradientMapNode"), ("graphene_core::raster::HueSaturationNode", "graphene_core::raster::adjustments::HueSaturationNode"), ("graphene_core::raster::InvertNode", "graphene_core::raster::adjustments::InvertNode"), - // ("graphene_core::raster::IndexNode", "graphene_core::raster::adjustments::IndexNode"), ("graphene_core::raster::InvertRGBNode", "graphene_core::raster::adjustments::InvertNode"), ("graphene_core::raster::LevelsNode", "graphene_core::raster::adjustments::LevelsNode"), ("graphene_core::raster::LuminanceNode", "graphene_core::raster::adjustments::LuminanceNode"), diff --git a/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs b/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs index 9b760019a5..c9b4d386f3 100644 --- a/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs +++ b/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs @@ -7,8 +7,10 @@ use graphene_core::Context; use graphene_core::GraphicGroupTable; use graphene_core::instances::Instances; use graphene_core::memo::IORecord; +use graphene_core::raster::Image; use graphene_core::vector::{VectorData, VectorDataTable}; use graphene_core::{Artboard, ArtboardGroupTable, GraphicElement}; +use graphene_std::Color; use std::any::Any; use std::sync::Arc; @@ -154,7 +156,7 @@ impl InstanceLayout for GraphicElement { match self { Self::GraphicGroup(instances) => instances.identifier(), Self::VectorData(instances) => instances.identifier(), - Self::RasterFrame(_) => "RasterFrame".to_string(), + Self::RasterDataType(_) => "RasterDataType".to_string(), } } // Don't put a breadcrumb for GraphicElement @@ -165,7 +167,7 @@ impl InstanceLayout for GraphicElement { match self { Self::GraphicGroup(instances) => instances.layout_with_breadcrumb(data), Self::VectorData(instances) => instances.layout_with_breadcrumb(data), - Self::RasterFrame(_) => label("Raster frame not supported"), + Self::RasterDataType(_) => label("Raster frame not supported"), } } } @@ -225,6 +227,19 @@ impl InstanceLayout for VectorData { } } +impl InstanceLayout for Image { + fn type_name() -> &'static str { + "Image" + } + fn identifier(&self) -> String { + format!("Image (width={}, height={})", self.width, self.height) + } + fn compute_layout(&self, _data: &mut LayoutData) -> Vec { + let rows = vec![vec![TextLabel::new(format!("Image (width={}, height={})", self.width, self.height)).widget_holder()]]; + vec![LayoutGroup::Table { rows }] + } +} + impl InstanceLayout for Artboard { fn type_name() -> &'static str { "Artboard" diff --git a/editor/src/messages/tool/common_functionality/graph_modification_utils.rs b/editor/src/messages/tool/common_functionality/graph_modification_utils.rs index ea9ab3bb60..00b178fb2a 100644 --- a/editor/src/messages/tool/common_functionality/graph_modification_utils.rs +++ b/editor/src/messages/tool/common_functionality/graph_modification_utils.rs @@ -10,7 +10,7 @@ use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput}; use graphene_core::Color; use graphene_core::raster::BlendMode; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::text::{Font, TypesettingConfig}; use graphene_core::vector::style::Gradient; use graphene_std::vector::{ManipulatorPointId, PointId, SegmentId, VectorModificationType}; @@ -207,7 +207,7 @@ pub fn new_vector_layer(subpaths: Vec>, id: NodeId, parent: Lay } /// Create a new bitmap layer. -pub fn new_image_layer(image_frame: ImageFrameTable, id: NodeId, parent: LayerNodeIdentifier, responses: &mut VecDeque) -> LayerNodeIdentifier { +pub fn new_image_layer(image_frame: RasterDataTable, id: NodeId, parent: LayerNodeIdentifier, responses: &mut VecDeque) -> LayerNodeIdentifier { let insert_index = 0; responses.add(GraphOperationMessage::NewBitmapLayer { id, @@ -424,12 +424,9 @@ impl<'a> NodeGraphLayer<'a> { /// Check if a layer is a raster layer pub fn is_raster_layer(layer: LayerNodeIdentifier, network_interface: &mut NodeNetworkInterface) -> bool { let layer_input_type = network_interface.input_type(&InputConnector::node(layer.to_node(), 1), &[]).0.nested_type().clone(); - if layer_input_type == concrete!(graphene_core::raster::image::ImageFrameTable) - || layer_input_type == concrete!(graphene_core::application_io::TextureFrameTable) - || layer_input_type == concrete!(graphene_std::RasterFrame) - { - return true; - } - false + + layer_input_type == concrete!(graphene_std::RasterDataType) + || layer_input_type == concrete!(graphene_core::raster::image::RasterDataTable) + || layer_input_type == concrete!(graphene_core::application_io::TextureDataTable) } } diff --git a/editor/src/node_graph_executor.rs b/editor/src/node_graph_executor.rs index 4e514e2a33..da4b143f74 100644 --- a/editor/src/node_graph_executor.rs +++ b/editor/src/node_graph_executor.rs @@ -383,7 +383,7 @@ impl NodeGraphExecutor { TaggedValue::OptionalColor(render_object) => Self::debug_render(render_object, transform, responses), TaggedValue::VectorData(render_object) => Self::debug_render(render_object, transform, responses), TaggedValue::GraphicGroup(render_object) => Self::debug_render(render_object, transform, responses), - TaggedValue::ImageFrame(render_object) => Self::debug_render(render_object, transform, responses), + TaggedValue::RasterData(render_object) => Self::debug_render(render_object, transform, responses), TaggedValue::Palette(render_object) => Self::debug_render(render_object, transform, responses), _ => { return Err(format!("Invalid node graph output type: {node_graph_output:#?}")); diff --git a/node-graph/gcore/src/application_io.rs b/node-graph/gcore/src/application_io.rs index 7863d46e9c..2a760a4712 100644 --- a/node-graph/gcore/src/application_io.rs +++ b/node-graph/gcore/src/application_io.rs @@ -53,8 +53,7 @@ impl Size for web_sys::HtmlCanvasElement { } } -// TODO: Rename to ImageTextureTable -pub type TextureFrameTable = Instances; +pub type TextureDataTable = Instances; #[derive(Debug, Clone)] pub struct ImageTexture { diff --git a/node-graph/gcore/src/graphic_element.rs b/node-graph/gcore/src/graphic_element.rs index 3d43e7a421..7097fad1b1 100644 --- a/node-graph/gcore/src/graphic_element.rs +++ b/node-graph/gcore/src/graphic_element.rs @@ -1,7 +1,7 @@ -use crate::application_io::{ImageTexture, TextureFrameTable}; +use crate::application_io::{ImageTexture, TextureDataTable}; use crate::instances::{Instance, Instances}; use crate::raster::BlendMode; -use crate::raster::image::{Image, ImageFrameTable}; +use crate::raster::image::{Image, RasterDataTable}; use crate::transform::TransformMut; use crate::uuid::NodeId; use crate::vector::{VectorData, VectorDataTable}; @@ -124,22 +124,22 @@ impl From for GraphicGroupTable { } impl From> for GraphicGroupTable { fn from(image: Image) -> Self { - Self::new(GraphicElement::RasterFrame(RasterFrame::ImageFrame(ImageFrameTable::new(image)))) + Self::new(GraphicElement::RasterDataType(RasterDataType::RasterData(RasterDataTable::new(image)))) } } -impl From> for GraphicGroupTable { - fn from(image_frame: ImageFrameTable) -> Self { - Self::new(GraphicElement::RasterFrame(RasterFrame::ImageFrame(image_frame))) +impl From> for GraphicGroupTable { + fn from(image_frame: RasterDataTable) -> Self { + Self::new(GraphicElement::RasterDataType(RasterDataType::RasterData(image_frame))) } } impl From for GraphicGroupTable { fn from(image_texture: ImageTexture) -> Self { - Self::new(GraphicElement::RasterFrame(RasterFrame::TextureFrame(TextureFrameTable::new(image_texture)))) + Self::new(GraphicElement::RasterDataType(RasterDataType::TextureData(TextureDataTable::new(image_texture)))) } } -impl From for GraphicGroupTable { - fn from(texture_frame: TextureFrameTable) -> Self { - Self::new(GraphicElement::RasterFrame(RasterFrame::TextureFrame(texture_frame))) +impl From for GraphicGroupTable { + fn from(texture_frame: TextureDataTable) -> Self { + Self::new(GraphicElement::RasterDataType(RasterDataType::TextureData(texture_frame))) } } @@ -151,7 +151,7 @@ pub enum GraphicElement { GraphicGroup(GraphicGroupTable), /// A vector shape, equivalent to the SVG tag: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/path VectorData(VectorDataTable), - RasterFrame(RasterFrame), + RasterDataType(RasterDataType), } impl Default for GraphicElement { @@ -189,16 +189,16 @@ impl GraphicElement { } } - pub fn as_raster(&self) -> Option<&RasterFrame> { + pub fn as_raster(&self) -> Option<&RasterDataType> { match self { - GraphicElement::RasterFrame(raster) => Some(raster), + GraphicElement::RasterDataType(raster) => Some(raster), _ => None, } } - pub fn as_raster_mut(&mut self) -> Option<&mut RasterFrame> { + pub fn as_raster_mut(&mut self) -> Option<&mut RasterDataType> { match self { - GraphicElement::RasterFrame(raster) => Some(raster), + GraphicElement::RasterDataType(raster) => Some(raster), _ => None, } } @@ -206,32 +206,32 @@ impl GraphicElement { // TODO: Rename to Raster #[derive(Clone, Debug, Hash, PartialEq, DynAny)] -pub enum RasterFrame { +pub enum RasterDataType { /// A CPU-based bitmap image with a finite position and extent, equivalent to the SVG tag: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image // TODO: Rename to ImageTable - ImageFrame(ImageFrameTable), + RasterData(RasterDataTable), /// A GPU texture with a finite position and extent // TODO: Rename to ImageTextureTable - TextureFrame(TextureFrameTable), + TextureData(TextureDataTable), } -impl<'de> serde::Deserialize<'de> for RasterFrame { +impl<'de> serde::Deserialize<'de> for RasterDataType { fn deserialize(deserializer: D) -> Result where D: serde::Deserializer<'de>, { - Ok(RasterFrame::ImageFrame(ImageFrameTable::new(Image::deserialize(deserializer)?))) + Ok(RasterDataType::RasterData(RasterDataTable::new(Image::deserialize(deserializer)?))) } } -impl serde::Serialize for RasterFrame { +impl serde::Serialize for RasterDataType { fn serialize(&self, serializer: S) -> Result where S: serde::Serializer, { match self { - RasterFrame::ImageFrame(_) => self.serialize(serializer), - RasterFrame::TextureFrame(_) => todo!(), + RasterDataType::RasterData(_) => self.serialize(serializer), + RasterDataType::TextureData(_) => todo!(), } } } @@ -324,8 +324,8 @@ async fn to_element + 'n>( #[implementations( GraphicGroupTable, VectorDataTable, - ImageFrameTable, - TextureFrameTable, + RasterDataTable, + TextureDataTable, )] data: Data, ) -> GraphicElement { @@ -338,8 +338,8 @@ async fn to_group + 'n>( #[implementations( GraphicGroupTable, VectorDataTable, - ImageFrameTable, - TextureFrameTable, + RasterDataTable, + TextureDataTable, )] element: Data, ) -> GraphicGroupTable { @@ -391,8 +391,8 @@ async fn to_artboard + 'n>( #[implementations( Context -> GraphicGroupTable, Context -> VectorDataTable, - Context -> ImageFrameTable, - Context -> TextureFrameTable, + Context -> RasterDataTable, + Context -> TextureDataTable, )] contents: impl Node, Output = Data>, label: String, @@ -438,23 +438,23 @@ async fn append_artboard(_ctx: impl Ctx, mut artboards: ArtboardGroupTable, artb // TODO: Remove this one impl From> for GraphicElement { fn from(image_frame: Image) -> Self { - GraphicElement::RasterFrame(RasterFrame::ImageFrame(ImageFrameTable::new(image_frame))) + GraphicElement::RasterDataType(RasterDataType::RasterData(RasterDataTable::new(image_frame))) } } -impl From> for GraphicElement { - fn from(image_frame: ImageFrameTable) -> Self { - GraphicElement::RasterFrame(RasterFrame::ImageFrame(image_frame)) +impl From> for GraphicElement { + fn from(image_frame: RasterDataTable) -> Self { + GraphicElement::RasterDataType(RasterDataType::RasterData(image_frame)) } } // TODO: Remove this one impl From for GraphicElement { - fn from(texture: ImageTexture) -> Self { - GraphicElement::RasterFrame(RasterFrame::TextureFrame(TextureFrameTable::new(texture))) + fn from(image_texture: ImageTexture) -> Self { + GraphicElement::RasterDataType(RasterDataType::TextureData(TextureDataTable::new(image_texture))) } } -impl From for GraphicElement { - fn from(texture: TextureFrameTable) -> Self { - GraphicElement::RasterFrame(RasterFrame::TextureFrame(texture)) +impl From for GraphicElement { + fn from(texture_data: TextureDataTable) -> Self { + GraphicElement::RasterDataType(RasterDataType::TextureData(texture_data)) } } // TODO: Remove this one diff --git a/node-graph/gcore/src/graphic_element/renderer.rs b/node-graph/gcore/src/graphic_element/renderer.rs index c2fc65b2e0..e83616d199 100644 --- a/node-graph/gcore/src/graphic_element/renderer.rs +++ b/node-graph/gcore/src/graphic_element/renderer.rs @@ -1,13 +1,13 @@ mod quad; mod rect; -use crate::raster::image::ImageFrameTable; +use crate::raster::image::RasterDataTable; use crate::raster::{BlendMode, Image}; use crate::transform::{Footprint, Transform}; use crate::uuid::{NodeId, generate_uuid}; use crate::vector::style::{Fill, Stroke, ViewMode}; use crate::vector::{PointId, VectorDataTable}; -use crate::{Artboard, ArtboardGroupTable, Color, GraphicElement, GraphicGroupTable, RasterFrame}; +use crate::{Artboard, ArtboardGroupTable, Color, GraphicElement, GraphicGroupTable, RasterDataType}; use base64::Engine; use bezier_rs::Subpath; use dyn_any::DynAny; @@ -843,7 +843,7 @@ impl GraphicElementRendered for ArtboardGroupTable { } } -impl GraphicElementRendered for ImageFrameTable { +impl GraphicElementRendered for RasterDataTable { fn render_svg(&self, render: &mut SvgRender, _render_params: &RenderParams) { for instance in self.instance_ref_iter() { let transform = *instance.transform * render.transform; @@ -923,11 +923,11 @@ impl GraphicElementRendered for ImageFrameTable { } } -impl GraphicElementRendered for RasterFrame { +impl GraphicElementRendered for RasterDataType { fn render_svg(&self, render: &mut SvgRender, render_params: &RenderParams) { match self { - RasterFrame::ImageFrame(image) => image.render_svg(render, render_params), - RasterFrame::TextureFrame(_) => log::warn!("tried to render texture as an svg"), + RasterDataType::RasterData(image) => image.render_svg(render, render_params), + RasterDataType::TextureData(_) => log::warn!("tried to render texture as an svg"), } } @@ -953,7 +953,7 @@ impl GraphicElementRendered for RasterFrame { }; match self { - RasterFrame::ImageFrame(image) => { + RasterDataType::RasterData(image) => { for instance in image.instance_ref_iter() { let image = &instance.instance; if image.data.is_empty() { @@ -965,7 +965,7 @@ impl GraphicElementRendered for RasterFrame { render_stuff(image, *instance.transform, *instance.alpha_blending); } } - RasterFrame::TextureFrame(image_texture) => { + RasterDataType::TextureData(image_texture) => { for instance in image_texture.instance_ref_iter() { let image = vello::peniko::Image::new(vec![].into(), peniko::Format::Rgba8, instance.instance.texture.width(), instance.instance.texture.height()).with_extend(peniko::Extend::Repeat); @@ -986,8 +986,8 @@ impl GraphicElementRendered for RasterFrame { }; match self { - RasterFrame::ImageFrame(instances) => instances.instance_ref_iter().flat_map(|instance| calculate_transform(*instance.transform)).reduce(Quad::combine_bounds), - RasterFrame::TextureFrame(instances) => instances.instance_ref_iter().flat_map(|instance| calculate_transform(*instance.transform)).reduce(Quad::combine_bounds), + RasterDataType::RasterData(instances) => instances.instance_ref_iter().flat_map(|instance| calculate_transform(*instance.transform)).reduce(Quad::combine_bounds), + RasterDataType::TextureData(instances) => instances.instance_ref_iter().flat_map(|instance| calculate_transform(*instance.transform)).reduce(Quad::combine_bounds), } } @@ -999,13 +999,13 @@ impl GraphicElementRendered for RasterFrame { metadata.upstream_footprints.insert(element_id, footprint); match self { - RasterFrame::ImageFrame(instances) => { + RasterDataType::RasterData(instances) => { // TODO: Find a way to handle more than one row of the graphical data table if let Some(image) = instances.instance_ref_iter().next() { metadata.local_transforms.insert(element_id, *image.transform); } } - RasterFrame::TextureFrame(instances) => { + RasterDataType::TextureData(instances) => { // TODO: Find a way to handle more than one row of the graphical data table if let Some(image_texture) = instances.instance_ref_iter().next() { metadata.local_transforms.insert(element_id, *image_texture.transform); @@ -1024,7 +1024,7 @@ impl GraphicElementRendered for GraphicElement { fn render_svg(&self, render: &mut SvgRender, render_params: &RenderParams) { match self { GraphicElement::VectorData(vector_data) => vector_data.render_svg(render, render_params), - GraphicElement::RasterFrame(raster) => raster.render_svg(render, render_params), + GraphicElement::RasterDataType(raster) => raster.render_svg(render, render_params), GraphicElement::GraphicGroup(graphic_group) => graphic_group.render_svg(render, render_params), } } @@ -1034,14 +1034,14 @@ impl GraphicElementRendered for GraphicElement { match self { GraphicElement::VectorData(vector_data) => vector_data.render_to_vello(scene, transform, context, render_params), GraphicElement::GraphicGroup(graphic_group) => graphic_group.render_to_vello(scene, transform, context, render_params), - GraphicElement::RasterFrame(raster) => raster.render_to_vello(scene, transform, context, render_params), + GraphicElement::RasterDataType(raster) => raster.render_to_vello(scene, transform, context, render_params), } } fn bounding_box(&self, transform: DAffine2, include_stroke: bool) -> Option<[DVec2; 2]> { match self { GraphicElement::VectorData(vector_data) => vector_data.bounding_box(transform, include_stroke), - GraphicElement::RasterFrame(raster) => raster.bounding_box(transform, include_stroke), + GraphicElement::RasterDataType(raster) => raster.bounding_box(transform, include_stroke), GraphicElement::GraphicGroup(graphic_group) => graphic_group.bounding_box(transform, include_stroke), } } @@ -1059,16 +1059,16 @@ impl GraphicElementRendered for GraphicElement { metadata.local_transforms.insert(element_id, *vector_data.transform); } } - GraphicElement::RasterFrame(raster_frame) => { + GraphicElement::RasterDataType(raster_frame) => { metadata.upstream_footprints.insert(element_id, footprint); match raster_frame { - RasterFrame::ImageFrame(instances) => { + RasterDataType::RasterData(instances) => { // TODO: Find a way to handle more than one row of images if let Some(image) = instances.instance_ref_iter().next() { metadata.local_transforms.insert(element_id, *image.transform); } } - RasterFrame::TextureFrame(instances) => { + RasterDataType::TextureData(instances) => { // TODO: Find a way to handle more than one row of image textures if let Some(image_texture) = instances.instance_ref_iter().next() { metadata.local_transforms.insert(element_id, *image_texture.transform); @@ -1081,7 +1081,7 @@ impl GraphicElementRendered for GraphicElement { match self { GraphicElement::VectorData(vector_data) => vector_data.collect_metadata(metadata, footprint, element_id), - GraphicElement::RasterFrame(raster) => raster.collect_metadata(metadata, footprint, element_id), + GraphicElement::RasterDataType(raster) => raster.collect_metadata(metadata, footprint, element_id), GraphicElement::GraphicGroup(graphic_group) => graphic_group.collect_metadata(metadata, footprint, element_id), } } @@ -1089,7 +1089,7 @@ impl GraphicElementRendered for GraphicElement { fn add_upstream_click_targets(&self, click_targets: &mut Vec) { match self { GraphicElement::VectorData(vector_data) => vector_data.add_upstream_click_targets(click_targets), - GraphicElement::RasterFrame(raster) => raster.add_upstream_click_targets(click_targets), + GraphicElement::RasterDataType(raster) => raster.add_upstream_click_targets(click_targets), GraphicElement::GraphicGroup(graphic_group) => graphic_group.add_upstream_click_targets(click_targets), } } @@ -1098,7 +1098,7 @@ impl GraphicElementRendered for GraphicElement { match self { GraphicElement::VectorData(vector_data) => vector_data.contains_artboard(), GraphicElement::GraphicGroup(graphic_group) => graphic_group.contains_artboard(), - GraphicElement::RasterFrame(raster) => raster.contains_artboard(), + GraphicElement::RasterDataType(raster) => raster.contains_artboard(), } } @@ -1106,7 +1106,7 @@ impl GraphicElementRendered for GraphicElement { match self { GraphicElement::VectorData(vector_data) => vector_data.new_ids_from_hash(reference), GraphicElement::GraphicGroup(graphic_group) => graphic_group.new_ids_from_hash(reference), - GraphicElement::RasterFrame(_) => (), + GraphicElement::RasterDataType(_) => (), } } } diff --git a/node-graph/gcore/src/ops.rs b/node-graph/gcore/src/ops.rs index dc872ca7aa..891a693fcf 100644 --- a/node-graph/gcore/src/ops.rs +++ b/node-graph/gcore/src/ops.rs @@ -1,6 +1,6 @@ use crate::Ctx; use crate::raster::BlendMode; -use crate::raster::image::ImageFrameTable; +use crate::raster::image::RasterDataTable; use crate::registry::types::{Fraction, Percentage}; use crate::vector::style::GradientStops; use crate::{Color, Node}; @@ -453,7 +453,7 @@ fn color_value(_: impl Ctx, _primary: (), #[default(Color::BLACK)] color: Option // _: impl Ctx, // #[implementations( // Color, -// ImageFrameTable, +// RasterDataTable, // GradientStops, // )] // mut image: T, @@ -515,7 +515,7 @@ fn unwrap(_: impl Ctx, #[implementations(Option, Option, O /// Meant for debugging purposes, not general use. Clones the input value. #[node_macro::node(category("Debug"))] -fn clone<'i, T: Clone + 'i>(_: impl Ctx, #[implementations(&ImageFrameTable)] value: &'i T) -> T { +fn clone<'i, T: Clone + 'i>(_: impl Ctx, #[implementations(&RasterDataTable)] value: &'i T) -> T { value.clone() } diff --git a/node-graph/gcore/src/raster.rs b/node-graph/gcore/src/raster.rs index 3b23b2781c..ccaee7ebfe 100644 --- a/node-graph/gcore/src/raster.rs +++ b/node-graph/gcore/src/raster.rs @@ -1,7 +1,7 @@ pub use self::color::{Color, Luma, SRGBA8}; use crate::Ctx; use crate::GraphicGroupTable; -use crate::raster::image::ImageFrameTable; +use crate::raster::image::RasterDataTable; use crate::registry::types::Percentage; use crate::vector::VectorDataTable; use bytemuck::{Pod, Zeroable}; @@ -310,7 +310,7 @@ impl SetBlendMode for GraphicGroupTable { } } } -impl SetBlendMode for ImageFrameTable { +impl SetBlendMode for RasterDataTable { fn set_blend_mode(&mut self, blend_mode: BlendMode) { for instance in self.instance_mut_iter() { instance.alpha_blending.blend_mode = blend_mode; @@ -324,7 +324,7 @@ fn blend_mode( #[implementations( GraphicGroupTable, VectorDataTable, - ImageFrameTable, + RasterDataTable, )] mut value: T, blend_mode: BlendMode, @@ -340,7 +340,7 @@ fn opacity( #[implementations( GraphicGroupTable, VectorDataTable, - ImageFrameTable, + RasterDataTable, )] mut value: T, #[default(100.)] factor: Percentage, diff --git a/node-graph/gcore/src/raster/adjustments.rs b/node-graph/gcore/src/raster/adjustments.rs index bd19ff24fd..493151c5c1 100644 --- a/node-graph/gcore/src/raster/adjustments.rs +++ b/node-graph/gcore/src/raster/adjustments.rs @@ -4,7 +4,7 @@ use crate::raster::curve::{CubicSplines, CurveManipulatorGroup}; #[cfg(feature = "alloc")] use crate::raster::curve::{Curve, ValueMapperNode}; #[cfg(feature = "alloc")] -use crate::raster::image::{Image, ImageFrameTable}; +use crate::raster::image::{Image, RasterDataTable}; use crate::raster::{Channel, Color, Pixel}; use crate::registry::types::{Angle, Percentage, SignedPercentage}; use crate::vector::VectorDataTable; @@ -265,7 +265,7 @@ fn luminance>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -289,7 +289,7 @@ fn extract_channel>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -312,7 +312,7 @@ fn make_opaque>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -337,7 +337,7 @@ fn brightness_contrast>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -426,7 +426,7 @@ fn levels>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -493,7 +493,7 @@ async fn black_and_white>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -565,7 +565,7 @@ async fn hue_saturation>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -599,7 +599,7 @@ async fn invert>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -621,7 +621,7 @@ async fn threshold>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -663,7 +663,7 @@ impl Blend for Option { } } } -impl Blend for ImageFrameTable { +impl Blend for RasterDataTable { fn blend(&self, under: &Self, blend_fn: impl Fn(Color, Color) -> Color) -> Self { let mut result_table = self.clone(); @@ -706,14 +706,14 @@ async fn blend + Send>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] over: T, #[expose] #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] under: T, @@ -795,7 +795,7 @@ impl Adjust for GradientStops { } } } -impl Adjust

for ImageFrameTable

+impl Adjust

for RasterDataTable

where GraphicElement: From>, { @@ -829,7 +829,7 @@ async fn gradient_map>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -865,7 +865,7 @@ async fn vibrance>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -1037,7 +1037,7 @@ async fn channel_mixer>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -1166,7 +1166,7 @@ async fn selective_color>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -1309,7 +1309,7 @@ impl MultiplyAlpha for GraphicGroupTable { } } } -impl MultiplyAlpha for ImageFrameTable

+impl MultiplyAlpha for RasterDataTable

where GraphicElement: From>, { @@ -1331,7 +1331,7 @@ async fn posterize>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -1364,7 +1364,7 @@ async fn exposure>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut input: T, @@ -1438,7 +1438,7 @@ fn color_overlay>( _: impl Ctx, #[implementations( Color, - ImageFrameTable, + RasterDataTable, GradientStops, )] mut image: T, @@ -1488,7 +1488,7 @@ fn color_overlay>( #[cfg(test)] mod test { use crate::raster::adjustments::BlendMode; - use crate::raster::image::{Image, ImageFrameTable}; + use crate::raster::image::{Image, RasterDataTable}; use crate::{Color, Node}; use std::pin::Pin; @@ -1514,7 +1514,7 @@ mod test { // 100% of the output should come from the multiplied value let opacity = 100_f64; - let result = super::color_overlay((), ImageFrameTable::new(image.clone()), overlay_color, BlendMode::Multiply, opacity); + let result = super::color_overlay((), RasterDataTable::new(image.clone()), overlay_color, BlendMode::Multiply, opacity); let result = result.instance_ref_iter().next().unwrap().instance; // The output should just be the original green and alpha channels (as we multiply them by 1 and other channels by 0) diff --git a/node-graph/gcore/src/raster/image.rs b/node-graph/gcore/src/raster/image.rs index 35d7405de7..3de639c230 100644 --- a/node-graph/gcore/src/raster/image.rs +++ b/node-graph/gcore/src/raster/image.rs @@ -16,19 +16,13 @@ mod base64_serde { use base64::Engine; use serde::{Deserialize, Deserializer, Serialize, Serializer}; - pub fn as_base64(key: &[P], serializer: S) -> Result - where - S: Serializer, - { + pub fn as_base64(key: &[P], serializer: S) -> Result { let u8_data = bytemuck::cast_slice(key); let string = base64::engine::general_purpose::STANDARD.encode(u8_data); (key.len() as u64, string).serialize(serializer) } - pub fn from_base64<'a, D, P: Pixel>(deserializer: D) -> Result, D::Error> - where - D: Deserializer<'a>, - { + pub fn from_base64<'a, D: Deserializer<'a>, P: Pixel>(deserializer: D) -> Result, D::Error> { use serde::de::Error; <(u64, &[u8])>::deserialize(deserializer) .and_then(|(len, str)| { @@ -214,7 +208,7 @@ impl IntoIterator for Image

{ } // TODO: Eventually remove this migration document upgrade code -pub fn migrate_image_frame<'de, D: serde::Deserializer<'de>>(deserializer: D) -> Result, D::Error> { +pub fn migrate_image_frame<'de, D: serde::Deserializer<'de>>(deserializer: D) -> Result, D::Error> { use serde::Deserialize; #[derive(Clone, Default, Debug, PartialEq, specta::Type)] @@ -224,13 +218,13 @@ pub fn migrate_image_frame<'de, D: serde::Deserializer<'de>>(deserializer: D) -> } impl From> for GraphicElement { fn from(image_frame: ImageFrame) -> Self { - GraphicElement::RasterFrame(crate::RasterFrame::ImageFrame(ImageFrameTable::new(image_frame.image))) + GraphicElement::RasterDataType(crate::RasterDataType::RasterData(RasterDataTable::new(image_frame.image))) } } impl From for ImageFrame { fn from(element: GraphicElement) -> Self { match element { - GraphicElement::RasterFrame(crate::RasterFrame::ImageFrame(image)) => Self { + GraphicElement::RasterDataType(crate::RasterDataType::RasterData(image)) => Self { image: image.instance_ref_iter().next().unwrap().instance.clone(), }, _ => panic!("Expected Image, found {:?}", element), @@ -261,20 +255,20 @@ pub fn migrate_image_frame<'de, D: serde::Deserializer<'de>>(deserializer: D) -> Image(Image), OldImageFrame(OldImageFrame), ImageFrame(Instances>), - ImageFrameTable(ImageFrameTable), + RasterDataTable(RasterDataTable), } Ok(match FormatVersions::deserialize(deserializer)? { - FormatVersions::Image(image) => ImageFrameTable::new(image), + FormatVersions::Image(image) => RasterDataTable::new(image), FormatVersions::OldImageFrame(image_frame_with_transform_and_blending) => { let OldImageFrame { image, transform, alpha_blending } = image_frame_with_transform_and_blending; - let mut image_frame_table = ImageFrameTable::new(image); + let mut image_frame_table = RasterDataTable::new(image); *image_frame_table.instance_mut_iter().next().unwrap().transform = transform; *image_frame_table.instance_mut_iter().next().unwrap().alpha_blending = alpha_blending; image_frame_table } - FormatVersions::ImageFrame(image_frame) => ImageFrameTable::new(image_frame.instance_ref_iter().next().unwrap().instance.image.clone()), - FormatVersions::ImageFrameTable(image_frame_table) => image_frame_table, + FormatVersions::ImageFrame(image_frame) => RasterDataTable::new(image_frame.instance_ref_iter().next().unwrap().instance.image.clone()), + FormatVersions::RasterDataTable(image_frame_table) => image_frame_table, }) } @@ -289,13 +283,13 @@ pub fn migrate_image_frame_instance<'de, D: serde::Deserializer<'de>>(deserializ } impl From> for GraphicElement { fn from(image_frame: ImageFrame) -> Self { - GraphicElement::RasterFrame(crate::RasterFrame::ImageFrame(ImageFrameTable::new(image_frame.image))) + GraphicElement::RasterDataType(crate::RasterDataType::RasterData(RasterDataTable::new(image_frame.image))) } } impl From for ImageFrame { fn from(element: GraphicElement) -> Self { match element { - GraphicElement::RasterFrame(crate::RasterFrame::ImageFrame(image)) => Self { + GraphicElement::RasterDataType(crate::RasterDataType::RasterData(image)) => Self { image: image.instance_ref_iter().next().unwrap().instance.clone(), }, _ => panic!("Expected Image, found {:?}", element), @@ -326,7 +320,7 @@ pub fn migrate_image_frame_instance<'de, D: serde::Deserializer<'de>>(deserializ Image(Image), OldImageFrame(OldImageFrame), ImageFrame(Instances>), - ImageFrameTable(ImageFrameTable), + RasterDataTable(RasterDataTable), ImageInstance(Instance>), } @@ -345,13 +339,13 @@ pub fn migrate_image_frame_instance<'de, D: serde::Deserializer<'de>>(deserializ instance: image_frame.instance_ref_iter().next().unwrap().instance.image.clone(), ..Default::default() }, - FormatVersions::ImageFrameTable(image_frame_table) => image_frame_table.instance_iter().next().unwrap_or_default(), + FormatVersions::RasterDataTable(image_frame_table) => image_frame_table.instance_iter().next().unwrap_or_default(), FormatVersions::ImageInstance(image_instance) => image_instance, }) } // TODO: Rename to ImageTable -pub type ImageFrameTable

= Instances>; +pub type RasterDataTable

= Instances>; impl Sample for Image

{ type Pixel = P; @@ -399,9 +393,9 @@ impl From> for Image { } } -impl From> for ImageFrameTable { - fn from(image_frame_table: ImageFrameTable) -> Self { - let mut result_table = ImageFrameTable::::default(); +impl From> for RasterDataTable { + fn from(image_frame_table: RasterDataTable) -> Self { + let mut result_table = RasterDataTable::::default(); for image_frame_instance in image_frame_table.instance_iter() { result_table.push(Instance { diff --git a/node-graph/gcore/src/transform.rs b/node-graph/gcore/src/transform.rs index c37cd04df7..9932e524b3 100644 --- a/node-graph/gcore/src/transform.rs +++ b/node-graph/gcore/src/transform.rs @@ -1,7 +1,7 @@ -use crate::application_io::TextureFrameTable; +use crate::application_io::TextureDataTable; use crate::instances::Instances; use crate::raster::bbox::AxisAlignedBbox; -use crate::raster::image::ImageFrameTable; +use crate::raster::image::RasterDataTable; use crate::vector::VectorDataTable; use crate::{Artboard, CloneVarArgs, Color, Context, Ctx, ExtractAll, GraphicGroupTable, OwnedContextImpl}; use core::f64; @@ -162,8 +162,8 @@ async fn transform( #[implementations( Context -> VectorDataTable, Context -> GraphicGroupTable, - Context -> ImageFrameTable, - Context -> TextureFrameTable, + Context -> RasterDataTable, + Context -> TextureDataTable, )] transform_target: impl Node, Output = Instances>, translate: DVec2, @@ -194,7 +194,7 @@ async fn transform( #[node_macro::node(category(""))] fn replace_transform( _: impl Ctx, - #[implementations(VectorDataTable, ImageFrameTable, GraphicGroupTable)] mut data: Instances, + #[implementations(VectorDataTable, RasterDataTable, GraphicGroupTable)] mut data: Instances, #[implementations(DAffine2)] transform: TransformInput, ) -> Instances { for data_transform in data.instance_mut_iter() { @@ -209,8 +209,8 @@ async fn boundless_footprint( #[implementations( Context -> VectorDataTable, Context -> GraphicGroupTable, - Context -> ImageFrameTable, - Context -> TextureFrameTable, + Context -> RasterDataTable, + Context -> TextureDataTable, Context -> String, Context -> f64, )] @@ -226,8 +226,8 @@ async fn freeze_real_time( #[implementations( Context -> VectorDataTable, Context -> GraphicGroupTable, - Context -> ImageFrameTable, - Context -> TextureFrameTable, + Context -> RasterDataTable, + Context -> TextureDataTable, Context -> String, Context -> f64, )] diff --git a/node-graph/gcore/src/vector/algorithms/instance.rs b/node-graph/gcore/src/vector/algorithms/instance.rs index 1add9bc65d..e109c5cfa5 100644 --- a/node-graph/gcore/src/vector/algorithms/instance.rs +++ b/node-graph/gcore/src/vector/algorithms/instance.rs @@ -1,6 +1,6 @@ use crate::instances::{InstanceRef, Instances}; use crate::raster::Color; -use crate::raster::image::ImageFrameTable; +use crate::raster::image::RasterDataTable; use crate::transform::TransformMut; use crate::vector::VectorDataTable; use crate::{CloneVarArgs, Context, Ctx, ExtractAll, ExtractIndex, ExtractVarArgs, GraphicElement, GraphicGroupTable, OwnedContextImpl}; @@ -10,7 +10,7 @@ use glam::DVec2; async fn instance_on_points + Default + Clone + 'static>( ctx: impl ExtractAll + CloneVarArgs + Sync + Ctx, points: VectorDataTable, - #[implementations(Context -> GraphicGroupTable, Context -> VectorDataTable, Context -> ImageFrameTable)] instance: impl Node<'n, Context<'static>, Output = Instances>, + #[implementations(Context -> GraphicGroupTable, Context -> VectorDataTable, Context -> RasterDataTable)] instance: impl Node<'n, Context<'static>, Output = Instances>, reverse: bool, ) -> GraphicGroupTable { let mut result_table = GraphicGroupTable::default(); @@ -46,7 +46,7 @@ async fn instance_on_points + Default + Clone + 'static> #[node_macro::node(category("Instancing"), path(graphene_core::vector))] async fn instance_repeat + Default + Clone + 'static>( ctx: impl ExtractAll + CloneVarArgs + Ctx, - #[implementations(Context -> GraphicGroupTable, Context -> VectorDataTable, Context -> ImageFrameTable)] instance: impl Node<'n, Context<'static>, Output = Instances>, + #[implementations(Context -> GraphicGroupTable, Context -> VectorDataTable, Context -> RasterDataTable)] instance: impl Node<'n, Context<'static>, Output = Instances>, #[default(1)] count: u64, reverse: bool, ) -> GraphicGroupTable { diff --git a/node-graph/gcore/src/vector/vector_nodes.rs b/node-graph/gcore/src/vector/vector_nodes.rs index 1547f04d1a..b5150762a4 100644 --- a/node-graph/gcore/src/vector/vector_nodes.rs +++ b/node-graph/gcore/src/vector/vector_nodes.rs @@ -4,7 +4,7 @@ use super::misc::{CentroidType, point_to_dvec2}; use super::style::{Fill, Gradient, GradientStops, Stroke}; use super::{PointId, SegmentDomain, SegmentId, StrokeId, VectorData, VectorDataTable}; use crate::instances::{Instance, InstanceMut, Instances}; -use crate::raster::image::ImageFrameTable; +use crate::raster::image::RasterDataTable; use crate::registry::types::{Angle, Fraction, IntegerCount, Length, Multiplier, Percentage, PixelLength, PixelSize, SeedValue}; use crate::renderer::GraphicElementRendered; use crate::transform::{Footprint, ReferencePoint, Transform}; @@ -204,7 +204,7 @@ where async fn repeat( _: impl Ctx, // TODO: Implement other GraphicElementRendered types. - #[implementations(GraphicGroupTable, VectorDataTable, ImageFrameTable)] instance: Instances, + #[implementations(GraphicGroupTable, VectorDataTable, RasterDataTable)] instance: Instances, #[default(100., 100.)] // TODO: When using a custom Properties panel layout in document_node_definitions.rs and this default is set, the widget weirdly doesn't show up in the Properties panel. Investigation is needed. direction: PixelSize, @@ -246,7 +246,7 @@ where async fn circular_repeat( _: impl Ctx, // TODO: Implement other GraphicElementRendered types. - #[implementations(GraphicGroupTable, VectorDataTable, ImageFrameTable)] instance: Instances, + #[implementations(GraphicGroupTable, VectorDataTable, RasterDataTable)] instance: Instances, angle_offset: Angle, #[default(5)] radius: f64, #[default(5)] instances: IntegerCount, @@ -286,7 +286,7 @@ async fn copy_to_points( points: VectorDataTable, #[expose] /// Artwork to be copied and placed at each point. - #[implementations(GraphicGroupTable, VectorDataTable, ImageFrameTable)] + #[implementations(GraphicGroupTable, VectorDataTable, RasterDataTable)] instance: Instances, /// Minimum range of randomized sizes given to each instance. #[default(1)] @@ -370,7 +370,7 @@ where #[node_macro::node(category("Vector"), path(graphene_core::vector))] async fn mirror( _: impl Ctx, - #[implementations(GraphicGroupTable, VectorDataTable, ImageFrameTable)] instance: Instances, + #[implementations(GraphicGroupTable, VectorDataTable, RasterDataTable)] instance: Instances, #[default(ReferencePoint::Center)] reference_point: ReferencePoint, offset: f64, #[range((-90., 90.))] angle: Angle, diff --git a/node-graph/graph-craft/src/document/value.rs b/node-graph/graph-craft/src/document/value.rs index 432b5686f4..b8ed2461ed 100644 --- a/node-graph/graph-craft/src/document/value.rs +++ b/node-graph/graph-craft/src/document/value.rs @@ -187,8 +187,8 @@ tagged_value! { GraphicElement(graphene_core::GraphicElement), #[cfg_attr(all(feature = "serde", target_arch = "wasm32"), serde(deserialize_with = "graphene_core::vector::migrate_vector_data"))] // TODO: Eventually remove this migration document upgrade code VectorData(graphene_core::vector::VectorDataTable), - #[cfg_attr(all(feature = "serde", target_arch = "wasm32"), serde(deserialize_with = "graphene_core::raster::image::migrate_image_frame"))] // TODO: Eventually remove this migration document upgrade code - ImageFrame(graphene_core::raster::image::ImageFrameTable), + #[cfg_attr(all(feature = "serde", target_arch = "wasm32"), serde(alias = "ImageFrame", deserialize_with = "graphene_core::raster::image::migrate_image_frame"))] // TODO: Eventually remove this migration document upgrade code + RasterData(graphene_core::raster::image::RasterDataTable), #[cfg_attr(all(feature = "serde", target_arch = "wasm32"), serde(deserialize_with = "graphene_core::migrate_graphic_group"))] // TODO: Eventually remove this migration document upgrade code GraphicGroup(graphene_core::GraphicGroupTable), #[cfg_attr(all(feature = "serde", target_arch = "wasm32"), serde(deserialize_with = "graphene_core::migrate_artboard_group"))] // TODO: Eventually remove this migration document upgrade code diff --git a/node-graph/gstd/src/brush.rs b/node-graph/gstd/src/brush.rs index ecc07f3826..b679f0625a 100644 --- a/node-graph/gstd/src/brush.rs +++ b/node-graph/gstd/src/brush.rs @@ -6,7 +6,7 @@ use graphene_core::instances::Instance; use graphene_core::raster::adjustments::blend_colors; use graphene_core::raster::bbox::{AxisAlignedBbox, Bbox}; use graphene_core::raster::brush_cache::BrushCache; -use graphene_core::raster::image::{Image, ImageFrameTable}; +use graphene_core::raster::image::{Image, RasterDataTable}; use graphene_core::raster::{Alpha, BitmapMut, BlendMode, Color, Pixel, Sample}; use graphene_core::renderer::GraphicElementRendered; use graphene_core::transform::Transform; @@ -80,7 +80,7 @@ fn brush_stamp_generator(diameter: f64, color: Color, hardness: f64, flow: f64) } #[node_macro::node(skip_impl)] -fn blit(mut target: ImageFrameTable

, texture: Image

, positions: Vec, blend_mode: BlendFn) -> ImageFrameTable

+fn blit(mut target: RasterDataTable

, texture: Image

, positions: Vec, blend_mode: BlendFn) -> RasterDataTable

where P: Pixel + Alpha + std::fmt::Debug, BlendFn: for<'any_input> Node<'any_input, (P, P), Output = P>, @@ -184,10 +184,10 @@ pub fn blend_with_mode(background: Instance>, foreground: Instance< } #[node_macro::node(category("Raster"))] -async fn brush(_: impl Ctx, mut image_frame_table: ImageFrameTable, strokes: Vec, cache: BrushCache) -> ImageFrameTable { +async fn brush(_: impl Ctx, mut image_frame_table: RasterDataTable, strokes: Vec, cache: BrushCache) -> RasterDataTable { // TODO: Find a way to handle more than one instance let Some(image_frame_instance) = image_frame_table.instance_ref_iter().next() else { - return ImageFrameTable::default(); + return RasterDataTable::default(); }; let image_frame_instance = image_frame_instance.to_instance_cloned(); @@ -204,7 +204,7 @@ async fn brush(_: impl Ctx, mut image_frame_table: ImageFrameTable, strok // TODO: Find a way to handle more than one instance let Some(mut actual_image) = extend_image_to_bounds((), brush_plan.background.to_table(), background_bounds).instance_iter().next() else { - return ImageFrameTable::default(); + return RasterDataTable::default(); }; let final_stroke_idx = brush_plan.strokes.len().saturating_sub(1); @@ -397,7 +397,7 @@ mod test { async fn test_brush_output_size() { let image = brush( (), - ImageFrameTable::::new(Image::::default()), + RasterDataTable::::new(Image::::default()), vec![BrushStroke { trace: vec![crate::vector::brush_stroke::BrushInputSample { position: DVec2::ZERO }], style: BrushStyle { diff --git a/node-graph/gstd/src/dehaze.rs b/node-graph/gstd/src/dehaze.rs index 26f67a6fe4..5e0de85d74 100644 --- a/node-graph/gstd/src/dehaze.rs +++ b/node-graph/gstd/src/dehaze.rs @@ -1,13 +1,13 @@ use graph_craft::proto::types::Percentage; -use graphene_core::raster::image::{Image, ImageFrameTable}; +use graphene_core::raster::image::{Image, RasterDataTable}; use graphene_core::{Color, Ctx}; use image::{DynamicImage, GenericImage, GenericImageView, GrayImage, ImageBuffer, Luma, Rgba, RgbaImage}; use ndarray::{Array2, ArrayBase, Dim, OwnedRepr}; use std::cmp::{max, min}; #[node_macro::node(category("Raster"))] -async fn dehaze(_: impl Ctx, image_frame: ImageFrameTable, strength: Percentage) -> ImageFrameTable { - let mut result_table = ImageFrameTable::default(); +async fn dehaze(_: impl Ctx, image_frame: RasterDataTable, strength: Percentage) -> RasterDataTable { + let mut result_table = RasterDataTable::default(); for mut image_frame_instance in image_frame.instance_iter() { let image = image_frame_instance.instance; diff --git a/node-graph/gstd/src/filter.rs b/node-graph/gstd/src/filter.rs index 52e2d13046..808c6ed5e5 100644 --- a/node-graph/gstd/src/filter.rs +++ b/node-graph/gstd/src/filter.rs @@ -1,5 +1,5 @@ use graph_craft::proto::types::PixelLength; -use graphene_core::raster::image::{Image, ImageFrameTable}; +use graphene_core::raster::image::{Image, RasterDataTable}; use graphene_core::raster::{Bitmap, BitmapMut}; use graphene_core::{Color, Ctx}; @@ -8,7 +8,7 @@ use graphene_core::{Color, Ctx}; async fn blur( _: impl Ctx, /// The image to be blurred. - image_frame: ImageFrameTable, + image_frame: RasterDataTable, /// The radius of the blur kernel. #[range((0., 100.))] #[hard_min(0.)] @@ -17,8 +17,8 @@ async fn blur( box_blur: bool, /// Opt to incorrectly apply the filter with color calculations in gamma space for compatibility with the results from other software. gamma: bool, -) -> ImageFrameTable { - let mut result_table = ImageFrameTable::default(); +) -> RasterDataTable { + let mut result_table = RasterDataTable::default(); for mut image_instance in image_frame.instance_iter() { let image = image_instance.instance.clone(); diff --git a/node-graph/gstd/src/gpu_nodes.rs b/node-graph/gstd/src/gpu_nodes.rs index a925c4ffb0..01cd671272 100644 --- a/node-graph/gstd/src/gpu_nodes.rs +++ b/node-graph/gstd/src/gpu_nodes.rs @@ -4,7 +4,7 @@ use graph_craft::document::value::TaggedValue; use graph_craft::document::*; use graph_craft::proto::*; use graphene_core::raster::BlendMode; -use graphene_core::raster::image::{Image, ImageFrameTable}; +use graphene_core::raster::image::{Image, RasterDataTable}; use graphene_core::*; use std::sync::Arc; use wgpu_executor::{Bindgroup, PipelineLayout, Shader, ShaderIO, ShaderInput, WgpuExecutor}; @@ -34,8 +34,8 @@ async fn compile_gpu<'a: 'n>(_: impl Ctx, node: &'a DocumentNode, typing_context } #[node_macro::node(category("Debug: GPU"))] -async fn blend_gpu_image(_: impl Ctx, foreground: ImageFrameTable, background: ImageFrameTable, blend_mode: BlendMode, opacity: f64) -> ImageFrameTable { - let mut result_table = ImageFrameTable::default(); +async fn blend_gpu_image(_: impl Ctx, foreground: RasterDataTable, background: RasterDataTable, blend_mode: BlendMode, opacity: f64) -> RasterDataTable { + let mut result_table = RasterDataTable::default(); for (foreground_instance, mut background_instance) in foreground.instance_iter().zip(background.instance_iter()) { let foreground_transform = foreground_instance.transform; @@ -95,7 +95,7 @@ async fn blend_gpu_image(_: impl Ctx, foreground: ImageFrameTable, backgr let proto_networks: Result, _> = compiler.compile(network.clone()).collect(); let Ok(proto_networks_result) = proto_networks else { log::error!("Error compiling network in 'blend_gpu_image()"); - return ImageFrameTable::default(); + return RasterDataTable::default(); }; let proto_networks = proto_networks_result; log::debug!("compiling shader"); @@ -241,7 +241,7 @@ async fn blend_gpu_image(_: impl Ctx, foreground: ImageFrameTable, backgr // } // #[node_macro::old_node_impl(MapGpuNode)] -// async fn map_gpu<'a: 'input>(image: ImageFrameTable, node: DocumentNode, editor_api: &'a graphene_core::application_io::EditorApi) -> ImageFrameTable { +// async fn map_gpu<'a: 'input>(image: RasterDataTable, node: DocumentNode, editor_api: &'a graphene_core::application_io::EditorApi) -> RasterDataTable { // let image_frame_table = ℑ // let image = image.instance_ref_iter().next().unwrap().instance; @@ -258,7 +258,7 @@ async fn blend_gpu_image(_: impl Ctx, foreground: ImageFrameTable, backgr // let name = "placeholder".to_string(); // let Ok(compute_pass_descriptor) = create_compute_pass_descriptor(node, image_frame_table, executor).await else { // log::error!("Error creating compute pass descriptor in 'map_gpu()"); -// return ImageFrameTable::default(); +// return RasterDataTable::default(); // }; // self.cache.lock().as_mut().unwrap().insert(name, compute_pass_descriptor.clone()); // log::error!("created compute pass"); @@ -292,7 +292,7 @@ async fn blend_gpu_image(_: impl Ctx, foreground: ImageFrameTable, backgr // height: image.height, // ..Default::default() // }; -// let mut result = ImageFrameTable::new(new_image); +// let mut result = RasterDataTable::new(new_image); // *result.transform_mut() = image_frame_table.transform(); // *result.instance_mut_iter().next().unwrap().alpha_blending = *image_frame_table.instance_ref_iter().next().unwrap().alpha_blending; @@ -309,7 +309,7 @@ async fn blend_gpu_image(_: impl Ctx, foreground: ImageFrameTable, backgr // } // } -// async fn create_compute_pass_descriptor(node: DocumentNode, image: &ImageFrameTable, executor: &&WgpuExecutor) -> Result +// async fn create_compute_pass_descriptor(node: DocumentNode, image: &RasterDataTable, executor: &&WgpuExecutor) -> Result // where // GraphicElement: From>, // T::Static: Pixel, diff --git a/node-graph/gstd/src/image_color_palette.rs b/node-graph/gstd/src/image_color_palette.rs index a9b24853f7..931ad809be 100644 --- a/node-graph/gstd/src/image_color_palette.rs +++ b/node-graph/gstd/src/image_color_palette.rs @@ -1,10 +1,10 @@ -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::{Color, Ctx}; #[node_macro::node(category("Raster"))] async fn image_color_palette( _: impl Ctx, - image: ImageFrameTable, + image: RasterDataTable, #[hard_min(1.)] #[soft_max(28.)] max_size: u32, @@ -64,13 +64,13 @@ async fn image_color_palette( #[cfg(test)] mod test { use super::*; - use graphene_core::raster::image::{Image, ImageFrameTable}; + use graphene_core::raster::image::{Image, RasterDataTable}; #[test] fn test_image_color_palette() { let result = image_color_palette( (), - ImageFrameTable::new(Image { + RasterDataTable::new(Image { width: 100, height: 100, data: vec![Color::from_rgbaf32(0., 0., 0., 1.).unwrap(); 10000], diff --git a/node-graph/gstd/src/raster.rs b/node-graph/gstd/src/raster.rs index 00284d48ef..6aa3de2170 100644 --- a/node-graph/gstd/src/raster.rs +++ b/node-graph/gstd/src/raster.rs @@ -3,7 +3,7 @@ use fastnoise_lite; use glam::{DAffine2, DVec2, Vec2}; use graphene_core::instances::Instance; use graphene_core::raster::bbox::Bbox; -use graphene_core::raster::image::{Image, ImageFrameTable}; +use graphene_core::raster::image::{Image, RasterDataTable}; use graphene_core::raster::{Alpha, AlphaMut, Bitmap, BitmapMut, CellularDistanceFunction, CellularReturnType, Channel, DomainWarpType, FractalType, LinearChannel, Luminance, NoiseType, RGBMut}; use graphene_core::transform::Transform; use graphene_core::{AlphaBlending, Color, Ctx, ExtractFootprint}; @@ -25,8 +25,8 @@ impl From for Error { } #[node_macro::node(category("Debug: Raster"))] -fn sample_image(ctx: impl ExtractFootprint + Clone + Send, image_frame: ImageFrameTable) -> ImageFrameTable { - let mut result_table = ImageFrameTable::default(); +fn sample_image(ctx: impl ExtractFootprint + Clone + Send, image_frame: RasterDataTable) -> RasterDataTable { + let mut result_table = RasterDataTable::default(); for mut image_frame_instance in image_frame.instance_iter() { let image_frame_transform = image_frame_instance.transform; @@ -95,12 +95,12 @@ fn sample_image(ctx: impl ExtractFootprint + Clone + Send, image_frame: ImageFra fn combine_channels( _: impl Ctx, _primary: (), - #[expose] red: ImageFrameTable, - #[expose] green: ImageFrameTable, - #[expose] blue: ImageFrameTable, - #[expose] alpha: ImageFrameTable, -) -> ImageFrameTable { - let mut result_table = ImageFrameTable::default(); + #[expose] red: RasterDataTable, + #[expose] green: RasterDataTable, + #[expose] blue: RasterDataTable, + #[expose] alpha: RasterDataTable, +) -> RasterDataTable { + let mut result_table = RasterDataTable::default(); let max_len = red.len().max(green.len()).max(blue.len()).max(alpha.len()); let red = red.instance_iter().map(Some).chain(std::iter::repeat(None)).take(max_len); @@ -184,11 +184,11 @@ fn combine_channels( fn mask( _: impl Ctx, /// The image to be masked. - image: ImageFrameTable, + image: RasterDataTable, /// The stencil to be used for masking. #[expose] - stencil: ImageFrameTable, -) -> ImageFrameTable { + stencil: RasterDataTable, +) -> RasterDataTable { // TODO: Support multiple stencil instances let Some(stencil_instance) = stencil.instance_iter().next() else { // No stencil provided so we return the original image @@ -196,7 +196,7 @@ fn mask( }; let stencil_size = DVec2::new(stencil_instance.instance.width as f64, stencil_instance.instance.height as f64); - let mut result_table = ImageFrameTable::default(); + let mut result_table = RasterDataTable::default(); for mut image_instance in image.instance_iter() { let image_size = DVec2::new(image_instance.instance.width as f64, image_instance.instance.height as f64); @@ -231,8 +231,8 @@ fn mask( } #[node_macro::node(category(""))] -fn extend_image_to_bounds(_: impl Ctx, image: ImageFrameTable, bounds: DAffine2) -> ImageFrameTable { - let mut result_table = ImageFrameTable::default(); +fn extend_image_to_bounds(_: impl Ctx, image: RasterDataTable, bounds: DAffine2) -> RasterDataTable { + let mut result_table = RasterDataTable::default(); for mut image_instance in image.instance_iter() { let image_aabb = Bbox::unit().affine_transform(image_instance.transform).to_axis_aligned_bbox(); @@ -284,13 +284,13 @@ fn extend_image_to_bounds(_: impl Ctx, image: ImageFrameTable, bounds: DA } #[node_macro::node(category("Debug: Raster"))] -fn empty_image(_: impl Ctx, transform: DAffine2, color: Color) -> ImageFrameTable { +fn empty_image(_: impl Ctx, transform: DAffine2, color: Color) -> RasterDataTable { let width = transform.transform_vector2(DVec2::new(1., 0.)).length() as u32; let height = transform.transform_vector2(DVec2::new(0., 1.)).length() as u32; let image = Image::new(width, height, color); - let mut result_table = ImageFrameTable::new(image); + let mut result_table = RasterDataTable::new(image); let image_instance = result_table.get_mut(0).unwrap(); *image_instance.transform = transform; *image_instance.alpha_blending = AlphaBlending::default(); @@ -301,7 +301,7 @@ fn empty_image(_: impl Ctx, transform: DAffine2, color: Color) -> ImageFrameTabl /// Constructs a raster image. #[node_macro::node(category(""))] -fn image(_: impl Ctx, _primary: (), image: ImageFrameTable) -> ImageFrameTable { +fn image(_: impl Ctx, _primary: (), image: RasterDataTable) -> RasterDataTable { image } @@ -329,15 +329,15 @@ fn image(_: impl Ctx, _primary: (), image: ImageFrameTable) -> ImageFrame // } // } -// impl<'i, 'e: 'i, P: Pixel + 'i + Hash + Default + Send, E: 'i, C: 'i, G: 'i, $($t: 'i,)*> Node<'i, ImageFrame

> for ImaginateNode +// impl<'i, 'e: 'i, P: Pixel + 'i + Hash + Default + Send, E: 'i, C: 'i, G: 'i, $($t: 'i,)*> Node<'i, RasterData

> for ImaginateNode // where $($t: for<'any_input> Node<'any_input, (), Output = DynFuture<'any_input, $o>>,)* // E: for<'any_input> Node<'any_input, (), Output = DynFuture<'any_input, &'e WasmEditorApi>>, // C: for<'any_input> Node<'any_input, (), Output = DynFuture<'any_input, ImaginateController>>, // G: for<'any_input> Node<'any_input, (), Output = DynFuture<'any_input, u64>>, // { -// type Output = DynFuture<'i, ImageFrame

>; +// type Output = DynFuture<'i, RasterData

>; -// fn eval(&'i self, frame: ImageFrame

) -> Self::Output { +// fn eval(&'i self, frame: RasterData

) -> Self::Output { // let controller = self.controller.eval(()); // $(let $val = self.$val.eval(());)* @@ -369,16 +369,16 @@ fn image(_: impl Ctx, _primary: (), image: ImageFrameTable) -> ImageFrame // } // } -// fn wrap_image_frame(image: Image

, transform: DAffine2) -> ImageFrame

{ +// fn wrap_image_frame(image: Image

, transform: DAffine2) -> RasterData

{ // if !transform.decompose_scale().abs_diff_eq(DVec2::ZERO, 0.00001) { -// ImageFrame { +// RasterData { // image, // transform, // alpha_blending: AlphaBlending::default(), // } // } else { // let resolution = DVec2::new(image.height as f64, image.width as f64); -// ImageFrame { +// RasterData { // image, // transform: DAffine2::from_scale_angle_translation(resolution, 0., transform.translation), // alpha_blending: AlphaBlending::default(), @@ -424,7 +424,7 @@ fn noise_pattern( cellular_distance_function: CellularDistanceFunction, cellular_return_type: CellularReturnType, cellular_jitter: f64, -) -> ImageFrameTable { +) -> RasterDataTable { let footprint = ctx.footprint(); let viewport_bounds = footprint.viewport_bounds_in_local_space(); @@ -442,7 +442,7 @@ fn noise_pattern( // If the image would not be visible, return an empty image if size.x <= 0. || size.y <= 0. { - return ImageFrameTable::default(); + return RasterDataTable::default(); } let footprint_scale = footprint.scale(); @@ -486,7 +486,7 @@ fn noise_pattern( } } - let mut result = ImageFrameTable::default(); + let mut result = RasterDataTable::default(); result.push(Instance { instance: image, transform: DAffine2::from_translation(offset) * DAffine2::from_scale(size), @@ -551,7 +551,7 @@ fn noise_pattern( } } - let mut result = ImageFrameTable::default(); + let mut result = RasterDataTable::default(); result.push(Instance { instance: image, transform: DAffine2::from_translation(offset) * DAffine2::from_scale(size), @@ -562,7 +562,7 @@ fn noise_pattern( } #[node_macro::node(category("Raster"))] -fn mandelbrot(ctx: impl ExtractFootprint + Send) -> ImageFrameTable { +fn mandelbrot(ctx: impl ExtractFootprint + Send) -> RasterDataTable { let footprint = ctx.footprint(); let viewport_bounds = footprint.viewport_bounds_in_local_space(); @@ -574,7 +574,7 @@ fn mandelbrot(ctx: impl ExtractFootprint + Send) -> ImageFrameTable { // If the image would not be visible, return an empty image if size.x <= 0. || size.y <= 0. { - return ImageFrameTable::default(); + return RasterDataTable::default(); } let scale = footprint.scale(); @@ -602,7 +602,7 @@ fn mandelbrot(ctx: impl ExtractFootprint + Send) -> ImageFrameTable { data, ..Default::default() }; - let mut result = ImageFrameTable::default(); + let mut result = RasterDataTable::default(); result.push(Instance { instance: image, transform: DAffine2::from_translation(offset) * DAffine2::from_scale(size), diff --git a/node-graph/gstd/src/vector.rs b/node-graph/gstd/src/vector.rs index f0f5edecc4..f0a5111d4b 100644 --- a/node-graph/gstd/src/vector.rs +++ b/node-graph/gstd/src/vector.rs @@ -1,6 +1,6 @@ use bezier_rs::{ManipulatorGroup, Subpath}; use glam::{DAffine2, DVec2}; -use graphene_core::RasterFrame; +use graphene_core::RasterDataType; use graphene_core::instances::{Instance, InstanceRef}; use graphene_core::vector::misc::BooleanOperation; use graphene_core::vector::style::Fill; @@ -203,7 +203,7 @@ fn flatten_vector_data(graphic_group_table: &GraphicGroupTable) -> VectorDataTab result_table.push(sub_vector_data); } } - GraphicElement::RasterFrame(image) => { + GraphicElement::RasterDataType(image) => { let make_instance = |transform| { // Convert the image frame into a rectangular subpath with the image's transform let mut subpath = Subpath::new_rect(DVec2::ZERO, DVec2::ONE); @@ -218,12 +218,12 @@ fn flatten_vector_data(graphic_group_table: &GraphicGroupTable) -> VectorDataTab // Apply the parent group's transform to each element of raster data match image { - RasterFrame::ImageFrame(image) => { + RasterDataType::RasterData(image) => { for instance in image.instance_ref_iter() { result_table.push(make_instance(*element.transform * *instance.transform)); } } - RasterFrame::TextureFrame(image) => { + RasterDataType::TextureData(image) => { for instance in image.instance_ref_iter() { result_table.push(make_instance(*element.transform * *instance.transform)); } diff --git a/node-graph/gstd/src/wasm_application_io.rs b/node-graph/gstd/src/wasm_application_io.rs index 22b27cd50b..6a1afd59d7 100644 --- a/node-graph/gstd/src/wasm_application_io.rs +++ b/node-graph/gstd/src/wasm_application_io.rs @@ -8,7 +8,7 @@ use graphene_core::application_io::{ApplicationIo, ExportFormat, RenderConfig}; use graphene_core::instances::Instances; #[cfg(target_arch = "wasm32")] use graphene_core::raster::bbox::Bbox; -use graphene_core::raster::image::{Image, ImageFrameTable}; +use graphene_core::raster::image::{Image, RasterDataTable}; use graphene_core::renderer::RenderMetadata; use graphene_core::renderer::{GraphicElementRendered, RenderParams, RenderSvgSegmentList, SvgRender, format_transform_matrix}; use graphene_core::transform::Footprint; @@ -39,7 +39,7 @@ async fn create_surface<'a: 'n>(_: impl Ctx, editor: &'a WasmEditorApi) -> Arc, +// image: RasterDataTable, // surface_handle: Arc, // ) -> graphene_core::application_io::SurfaceHandleFrame { // let image = image.instance_ref_iter().next().unwrap().instance; @@ -49,9 +49,9 @@ async fn create_surface<'a: 'n>(_: impl Ctx, editor: &'a WasmEditorApi) -> Arc().unwrap(); -// let image_data = web_sys::ImageData::new_with_u8_clamped_array_and_sh(array, image.image.width, image.image.height).expect("Failed to construct ImageData"); +// let image_data = web_sys::ImageData::new_with_u8_clamped_array_and_sh(array, image.image.width, image.image.height).expect("Failed to construct RasterData"); // context.put_image_data(&image_data, 0., 0.).unwrap(); // } // graphene_core::application_io::SurfaceHandleFrame { @@ -76,9 +76,9 @@ async fn load_resource<'a: 'n>(_: impl Ctx, _primary: (), #[scope("editor-api")] } #[node_macro::node(category("Network"))] -fn decode_image(_: impl Ctx, data: Arc<[u8]>) -> ImageFrameTable { +fn decode_image(_: impl Ctx, data: Arc<[u8]>) -> RasterDataTable { let Some(image) = image::load_from_memory(data.as_ref()).ok() else { - return ImageFrameTable::default(); + return RasterDataTable::default(); }; let image = image.to_rgba32f(); let image = Image { @@ -91,7 +91,7 @@ fn decode_image(_: impl Ctx, data: Arc<[u8]>) -> ImageFrameTable { ..Default::default() }; - ImageFrameTable::new(image) + RasterDataTable::new(image) } fn render_svg(data: impl GraphicElementRendered, mut render: SvgRender, render_params: RenderParams, footprint: Footprint) -> RenderOutputType { @@ -165,13 +165,13 @@ async fn rasterize( _: impl Ctx, #[implementations( VectorDataTable, - ImageFrameTable, + RasterDataTable, GraphicGroupTable, )] mut data: Instances, footprint: Footprint, surface_handle: Arc>, -) -> ImageFrameTable +) -> RasterDataTable where Instances: GraphicElementRendered, { @@ -179,7 +179,7 @@ where if footprint.transform.matrix2.determinant() == 0. { log::trace!("Invalid footprint received for rasterization"); - return ImageFrameTable::default(); + return RasterDataTable::default(); } let mut render = SvgRender::new(); @@ -218,7 +218,7 @@ where let rasterized = context.get_image_data(0., 0., resolution.x as f64, resolution.y as f64).unwrap(); - let mut result = ImageFrameTable::default(); + let mut result = RasterDataTable::default(); result.push(Instance { instance: Image::from_image_data(&rasterized.data().0, resolution.x as u32, resolution.y as u32), transform: footprint.transform, @@ -234,7 +234,7 @@ async fn render<'a: 'n, T: 'n + GraphicElementRendered + WasmNotSend>( editor_api: impl Node, Output = &'a WasmEditorApi>, #[implementations( Context -> VectorDataTable, - Context -> ImageFrameTable, + Context -> RasterDataTable, Context -> GraphicGroupTable, Context -> graphene_core::Artboard, Context -> graphene_core::ArtboardGroupTable, diff --git a/node-graph/interpreted-executor/src/node_registry.rs b/node-graph/interpreted-executor/src/node_registry.rs index 61f3e1d84a..cd08873c2b 100644 --- a/node-graph/interpreted-executor/src/node_registry.rs +++ b/node-graph/interpreted-executor/src/node_registry.rs @@ -3,7 +3,7 @@ use glam::{DVec2, UVec2}; use graph_craft::document::value::RenderOutput; use graph_craft::proto::{NodeConstructor, TypeErasedBox}; use graphene_core::raster::color::Color; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::raster::*; use graphene_core::vector::VectorDataTable; use graphene_core::{Artboard, GraphicGroupTable, concrete, generic}; @@ -13,7 +13,7 @@ use graphene_core::{fn_type_fut, future}; use graphene_std::Context; use graphene_std::GraphicElement; use graphene_std::any::{ComposeTypeErased, DowncastBothNode, DynAnyNode, IntoTypeErasedNode}; -use graphene_std::application_io::{ImageTexture, TextureFrameTable}; +use graphene_std::application_io::{ImageTexture, TextureDataTable}; use graphene_std::wasm_application_io::*; use node_registry_macros::{async_node, into_node}; use once_cell::sync::Lazy; @@ -34,17 +34,17 @@ fn node_registry() -> HashMap, to: ImageFrameTable), - into_node!(from: ImageFrameTable, to: ImageFrameTable), - into_node!(from: ImageFrameTable, to: GraphicElement), - into_node!(from: ImageFrameTable, to: GraphicGroupTable), - async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => ImageFrameTable]), + into_node!(from: RasterDataTable, to: RasterDataTable), + into_node!(from: RasterDataTable, to: RasterDataTable), + into_node!(from: RasterDataTable, to: GraphicElement), + into_node!(from: RasterDataTable, to: GraphicGroupTable), + async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => RasterDataTable]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => ImageTexture]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => VectorDataTable]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => GraphicGroupTable]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => GraphicElement]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => Artboard]), - async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => graphene_core::RasterFrame]), + async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => graphene_core::RasterDataType]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => graphene_core::instances::Instances]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => String]), async_node!(graphene_core::memo::MonitorNode<_, _, _>, input: Context, fn_params: [Context => glam::IVec2]), @@ -70,7 +70,7 @@ fn node_registry() -> HashMap, input: Context, fn_params: [Context => Box]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => Image]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => VectorDataTable]), - async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => ImageFrameTable]), + async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => RasterDataTable]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => GraphicGroupTable]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => Vec]), async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => Arc]), @@ -112,9 +112,9 @@ fn node_registry() -> HashMap, input: Context, fn_params: [Context => ShaderInputFrame]), #[cfg(feature = "gpu")] - async_node!(graphene_core::memo::ImpureMemoNode<_, _, _>, input: Context, fn_params: [Context => TextureFrameTable]), + async_node!(graphene_core::memo::ImpureMemoNode<_, _, _>, input: Context, fn_params: [Context => TextureDataTable]), #[cfg(feature = "gpu")] - async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => TextureFrameTable]), + async_node!(graphene_core::memo::MemoNode<_, _>, input: Context, fn_params: [Context => TextureDataTable]), #[cfg(feature = "gpu")] into_node!(from: &WasmEditorApi, to: &WgpuExecutor), #[cfg(feature = "gpu")] diff --git a/node-graph/node-macro/src/parsing.rs b/node-graph/node-macro/src/parsing.rs index ee8030d55c..ab5705204d 100644 --- a/node-graph/node-macro/src/parsing.rs +++ b/node-graph/node-macro/src/parsing.rs @@ -874,7 +874,7 @@ mod tests { fn test_node_with_implementations() { let attr = quote!(category("Raster: Adjustment")); let input = quote!( - fn levels(image: ImageFrameTable

, #[implementations(f32, f64)] shadows: f64) -> ImageFrameTable

{ + fn levels(image: RasterDataTable

, #[implementations(f32, f64)] shadows: f64) -> RasterDataTable

{ // Implementation details... } ); @@ -895,10 +895,10 @@ mod tests { where_clause: None, input: Input { pat_ident: pat_ident("image"), - ty: parse_quote!(ImageFrameTable

), + ty: parse_quote!(RasterDataTable

), implementations: Punctuated::new(), }, - output_type: parse_quote!(ImageFrameTable

), + output_type: parse_quote!(RasterDataTable

), is_async: false, fields: vec![ParsedField::Regular { pat_ident: pat_ident("shadows"), @@ -992,7 +992,7 @@ mod tests { fn test_async_node() { let attr = quote!(category("IO")); let input = quote!( - async fn load_image(api: &WasmEditorApi, #[expose] path: String) -> ImageFrameTable { + async fn load_image(api: &WasmEditorApi, #[expose] path: String) -> RasterDataTable { // Implementation details... } ); @@ -1016,7 +1016,7 @@ mod tests { ty: parse_quote!(&WasmEditorApi), implementations: Punctuated::new(), }, - output_type: parse_quote!(ImageFrameTable), + output_type: parse_quote!(RasterDataTable), is_async: true, fields: vec![ParsedField::Regular { pat_ident: pat_ident("path"), @@ -1132,7 +1132,7 @@ mod tests { fn test_invalid_implementation_syntax() { let attr = quote!(category("Test")); let input = quote!( - fn test_node(_: (), #[implementations((Footprint, Color), (Footprint, ImageFrameTable))] input: impl Node) -> T { + fn test_node(_: (), #[implementations((Footprint, Color), (Footprint, RasterDataTable))] input: impl Node) -> T { // Implementation details... } ); @@ -1158,10 +1158,10 @@ mod tests { #[implementations((), #tuples, Footprint)] footprint: F, #[implementations( () -> Color, - () -> ImageFrameTable, + () -> RasterDataTable, () -> GradientStops, Footprint -> Color, - Footprint -> ImageFrameTable, + Footprint -> RasterDataTable, Footprint -> GradientStops, )] image: impl Node, diff --git a/node-graph/wgpu-executor/src/lib.rs b/node-graph/wgpu-executor/src/lib.rs index 9960f9e0c8..b70764a2f7 100644 --- a/node-graph/wgpu-executor/src/lib.rs +++ b/node-graph/wgpu-executor/src/lib.rs @@ -8,9 +8,9 @@ pub use executor::GpuExecutor; use futures::Future; use glam::{DAffine2, UVec2}; use gpu_executor::{ComputePassDimensions, GPUConstant, StorageBufferOptions, TextureBufferOptions, TextureBufferType, ToStorageBuffer, ToUniformBuffer}; -use graphene_core::application_io::{ApplicationIo, EditorApi, ImageTexture, SurfaceHandle, TextureFrameTable}; +use graphene_core::application_io::{ApplicationIo, EditorApi, ImageTexture, SurfaceHandle, TextureDataTable}; use graphene_core::instances::Instance; -use graphene_core::raster::image::ImageFrameTable; +use graphene_core::raster::image::RasterDataTable; use graphene_core::raster::{Image, SRGBA8}; use graphene_core::transform::{Footprint, Transform}; use graphene_core::{Color, Cow, Ctx, ExtractFootprint, Node, SurfaceFrame, Type}; @@ -911,8 +911,8 @@ async fn render_texture<'a: 'n>( } #[node_macro::node(category(""))] -async fn upload_texture<'a: 'n>(_: impl ExtractFootprint + Ctx, input: ImageFrameTable, executor: &'a WgpuExecutor) -> TextureFrameTable { - let mut result_table = TextureFrameTable::default(); +async fn upload_texture<'a: 'n>(_: impl ExtractFootprint + Ctx, input: RasterDataTable, executor: &'a WgpuExecutor) -> TextureDataTable { + let mut result_table = TextureDataTable::default(); for instance in input.instance_ref_iter() { let image = instance.instance;