From c1692b3f918171c1e27a65c66be2c94e23995f92 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Mon, 4 Aug 2025 12:53:56 -0400 Subject: [PATCH 1/4] added more sources --- src/nodeConfig.js | 10 +++++++++- src/pathsim_utils.py | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/nodeConfig.js b/src/nodeConfig.js index 4f286695..3b573869 100644 --- a/src/nodeConfig.js +++ b/src/nodeConfig.js @@ -22,7 +22,15 @@ export const nodeTypes = { constant: SourceNode, source: SourceNode, stepsource: StepSourceNode, + trianglewavesource: SourceNode, + sinusoidalsource: SourceNode, + gaussianpulsesource: SourceNode, + sinusoidalphasenoisesource: SourceNode, + chirpphasenoisesource: SourceNode, + chirpsource: SourceNode, pulsesource: SourceNode, + clocksource: SourceNode, + squarewavesource: SourceNode, amplifier: AmplifierNode, amplifier_reverse: AmplifierNodeReverse, integrator: IntegratorNode, @@ -46,7 +54,7 @@ export const nodeTypes = { // Node categories for better organization export const nodeCategories = { 'Sources': { - nodes: ['constant', 'stepsource', 'source', 'pulsesource', 'rng', 'white_noise', 'pink_noise'], + nodes: ['constant', 'stepsource', 'source', 'pulsesource', 'trianglewavesource', 'sinusoidalsource', 'gaussianpulsesource', 'sinusoidalphasenoisesource', 'chirpphasenoisesource', 'chirpsource', 'clocksource', 'squarewavesource', 'rng', 'white_noise', 'pink_noise'], description: 'Signal and data source nodes' }, 'Processing': { diff --git a/src/pathsim_utils.py b/src/pathsim_utils.py index b98796e9..713214d1 100644 --- a/src/pathsim_utils.py +++ b/src/pathsim_utils.py @@ -21,6 +21,7 @@ Differentiator, Schedule, ) +import pathsim.blocks from pathsim.blocks.noise import WhiteNoise, PinkNoise from .custom_pathsim_blocks import ( Process, @@ -43,6 +44,14 @@ "constant": Constant, "source": Source, "stepsource": StepSource, + "trianglewavesource": pathsim.blocks.sources.TriangleWaveSource, + "sinusoidalsource": pathsim.blocks.sources.SinusoidalSource, + "gaussianpulsesource": pathsim.blocks.sources.GaussianPulseSource, + "sinusoidalphasenoisesource": pathsim.blocks.sources.SinusoidalPhaseNoiseSource, + "chirpphasenoisesource": pathsim.blocks.sources.ChirpPhaseNoiseSource, + "chirpsource": pathsim.blocks.sources.ChirpSource, + "clocksource": pathsim.blocks.sources.ClockSource, + "squarewavesource": pathsim.blocks.sources.SquareWaveSource, "pulsesource": PulseSource, "amplifier": Amplifier, "amplifier_reverse": Amplifier, From 7666f9cd498f79d2a7b1525bbbdb1e1400ad0ec9 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Mon, 4 Aug 2025 12:59:14 -0400 Subject: [PATCH 2/4] antiwindup pid --- src/nodeConfig.js | 3 ++- src/pathsim_utils.py | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/nodeConfig.js b/src/nodeConfig.js index 3b573869..a77bc297 100644 --- a/src/nodeConfig.js +++ b/src/nodeConfig.js @@ -41,6 +41,7 @@ export const nodeTypes = { function2to2: createFunctionNode(2, 2), // FunctionNode with 2 inputs and 2 outputs rng: SourceNode, pid: DefaultNode, + antiwinduppid: DefaultNode, splitter2: Splitter2Node, splitter3: Splitter3Node, wall: WallNode, @@ -66,7 +67,7 @@ export const nodeCategories = { description: 'Mathematical operation nodes' }, 'Control': { - nodes: ['pid'], + nodes: ['pid', 'antiwinduppid'], description: 'Control system nodes' }, 'Fuel Cycle': { diff --git a/src/pathsim_utils.py b/src/pathsim_utils.py index 713214d1..0d4facdd 100644 --- a/src/pathsim_utils.py +++ b/src/pathsim_utils.py @@ -65,6 +65,7 @@ "process_horizontal": Process, "rng": RNG, "pid": PID, + "antiwinduppid": pathsim.blocks.AntiWindupPID, "integrator": Integrator, "differentiator": Differentiator, "function": Function, From e02b67245464836ea980956101d77fdc60636e90 Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Mon, 4 Aug 2025 13:17:52 -0400 Subject: [PATCH 3/4] new styling --- src/App.css | 10 ++++++++++ src/Sidebar.jsx | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/App.css b/src/App.css index 2e0c56d3..de3d8296 100644 --- a/src/App.css +++ b/src/App.css @@ -391,6 +391,16 @@ aside .description { background-color: #3a2a1a !important; } +.dndnode.filters { + border-left: 4px solid #20c997 !important; + background-color: #1a3a2f !important; +} + +.dndnode.others { + border-left: 4px solid #ffc107 !important; + background-color: #3a3a1a !important; +} + .dndnode.input { border-left: 4px solid #28a745 !important; background-color: #1a2f1a !important; diff --git a/src/Sidebar.jsx b/src/Sidebar.jsx index 1893d19a..93bcfb0a 100644 --- a/src/Sidebar.jsx +++ b/src/Sidebar.jsx @@ -32,6 +32,8 @@ export default () => { 'Output': 'dndnode output', 'Processing': 'dndnode processing', 'Math': 'dndnode math', + 'Others': 'dndnode others', + 'Filters': 'dndnode filters', 'Control': 'dndnode control', 'Fuel Cycle': 'dndnode fuel-cycle' }; From 4d07e46f5371894b5a2bd04d8bb26c609dc8ecfa Mon Sep 17 00:00:00 2001 From: RemDelaporteMathurin Date: Mon, 4 Aug 2025 13:18:05 -0400 Subject: [PATCH 4/4] tons of new nodes --- src/nodeConfig.js | 18 +++++++++++++++++- src/pathsim_utils.py | 8 ++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/nodeConfig.js b/src/nodeConfig.js index a77bc297..9089cc76 100644 --- a/src/nodeConfig.js +++ b/src/nodeConfig.js @@ -49,7 +49,15 @@ export const nodeTypes = { white_noise: SourceNode, pink_noise: SourceNode, spectrum: ScopeNode, - differentiator: DefaultNode + differentiator: DefaultNode, + samplehold: DefaultNode, + comparator: DefaultNode, + allpassfilter: DefaultNode, + butterworthlowpass: DefaultNode, + butterworthhighpass: DefaultNode, + butterworthbandpass: DefaultNode, + butterworthbandstop: DefaultNode, + fir: DefaultNode }; // Node categories for better organization @@ -70,10 +78,18 @@ export const nodeCategories = { nodes: ['pid', 'antiwinduppid'], description: 'Control system nodes' }, + 'Filters': { + nodes: ['allpassfilter', 'butterworthlowpass', 'butterworthhighpass', 'butterworthbandpass', 'butterworthbandstop', 'fir'], + description: 'Filter and flow control nodes' + }, 'Fuel Cycle': { nodes: ['process', 'process_horizontal', 'bubbler', 'wall'], description: 'Fuel cycle specific nodes' }, + 'Others': { + nodes: ['samplehold', 'comparator'], + description: 'Miscellaneous nodes' + }, 'Output': { nodes: ['scope', 'spectrum'], description: 'Output and visualization nodes' diff --git a/src/pathsim_utils.py b/src/pathsim_utils.py index 0d4facdd..3c5ccfbd 100644 --- a/src/pathsim_utils.py +++ b/src/pathsim_utils.py @@ -76,6 +76,14 @@ "white_noise": WhiteNoise, "pink_noise": PinkNoise, "spectrum": Spectrum, + "samplehold": pathsim.blocks.SampleHold, + "comparator": pathsim.blocks.Comparator, + "allpassfilter": pathsim.blocks.AllpassFilter, + "butterworthlowpass": pathsim.blocks.ButterworthLowpassFilter, + "butterworthhighpass": pathsim.blocks.ButterworthHighpassFilter, + "butterworthbandpass": pathsim.blocks.ButterworthBandpassFilter, + "butterworthbandstop": pathsim.blocks.ButterworthBandstopFilter, + "fir": pathsim.blocks.FIR, }