1. Component catalogue
The current Morpho 2.1 palette has seven components for generation, capture, storage and visualization, plus nine filter components. Search by name or capability to find the part of the workflow you need.
No components match. Try a broader term.
Directory
Set the folder and project name that connect generation, storage and visualization to the same study.
- Inputs
- Directory path; Project Name.
- Outputs
- Project connection for Gene Generator, Save to Population and Visualizer.
- In practice
- Use a new project name when changing the input parameter structure. Filters select from the connected project.
Parameters
Control how new solutions vary through mutation and the spread between parent values.
- Inputs
- Mutation Probability and Spread Factor, each from 0 to 1.
- Outputs
- Encoded Parameters for Gene Generator’s Algorithm Parameters input.
- In practice
- Mutation introduces randomly generated genes. A zero spread keeps a child between its parents; increasing spread allows a wider search within the input bounds.
Gene Generator
Generate an initial random population or create new parameter combinations from eligible saved parents.
- Inputs
- Algorithm Parameters (optional); Initiate; Fitness Filters (optional); Intervals; Iteration Limit; Directory.
- Outputs
- Genes; Genes with Names; Parents.
- In practice
- Connect number sliders directly to Intervals. Use Genes to drive geometry and Genes with Names for Data Aggregator. Parents reports the eligible solution IDs. With no fitness filter, generation is random.
Data Aggregator
Collect a complete record of the alternative: its input parameters, measured outputs, images and textual results.
- Inputs
- Inputs from Genes with Names; named numerical Outputs; optional Images and Files.
- Outputs
- Aggregated Data for Save to Population.
- In practice
- Provide one number per named analysis output. Named Panels can supply textual Files. Connect Image Capture components for image records. The model and analysis tools supply the numerical results.
Image Capture
Associate a view or an existing image with each design alternative.
- Inputs
- Tag; optional File path. Choose a viewport from the component’s right-click menu.
- Outputs
- Image descriptor for Data Aggregator.
- In practice
- Use multiple tagged components for multiple views. Capture is completed after the Grasshopper solution. Viewport selection is retained when you save the definition.
Save to Population
Write each aggregated solution and its associated media to the project’s local population.
- Inputs
- Aggregated Data; Directory; Enabled.
- Outputs
- Saved database, regenerated CSV, and tagged image/text files; no Grasshopper output socket.
- In practice
- Enable after the definition is ready. The database stores the results and the CSV is refreshed after saving. The previous CSV is backed up. Turn Enabled off before making upstream changes.
Visualizer
Open the live project viewer to inspect alternatives and compare recorded parameters.
- Inputs
- Directory; Show.
- Outputs
- Status message.
- In practice
- Show=true opens or raises the viewer; false closes it. Rhino 8 on Windows with modern .NET uses the embedded viewer; other supported modes use the default browser. Keep its host window open for updates.
Filter
Define one numerical condition or rank the connected project by a named parameter.
- Inputs
- Parameter Name; Parameter Value (or a whole-number count for TopN/BottomN).
- Outputs
- Filter for Gene Generator or a logic component.
- In practice
- Right-click to choose GreaterThan, LesserThan, GreaterThanOrEqual, LesserThanOrEqual, Equal, NotEqual, TopN or BottomN. TopN selects the highest values; BottomN selects the lowest.
Filter ID
Select particular saved solutions as potential parents after inspecting their form and performance.
- Inputs
- One or more whole-number solution IDs; all input tree branches are collected.
- Outputs
- A parent-ID selection filter.
- In practice
- Enter one ID per Panel line. Multiple Filter ID outputs form a combined parent list when connected directly or pooled through AND/OR. The IDs belong to the connected project.
Filter Expression
Write comparisons, parent selections, rankings and logical combinations as one readable rule.
- Inputs
- Rule text, typically from a Panel.
- Outputs
- Filter; Parsed as (the fully parenthesized interpretation).
- In practice
- Use exact parameter names. “Parsed as” makes grouping visible. Invalid expressions report an error and stop generation rather than silently selecting different parents.
Filter AND
Require all supplied fitness conditions to hold.
- Inputs
- A list of Fitness Filters.
- Outputs
- Combined filter.
- In practice
- Component-based Filter ID inputs are pooled first; the remaining conditions are applied to that pool. For typed ID comparisons, ordinary Boolean AND applies.
Filter OR
Allow a solution when at least one supplied condition matches.
- Inputs
- A list of Fitness Filters.
- Outputs
- Combined filter.
- In practice
- Useful for retaining different promising regions of a design population. Separate Filter ID selections can also be pooled through this component.
Filter NOT
Exclude solutions matching the supplied condition.
- Inputs
- One Fitness Filter.
- Outputs
- Negated filter.
- In practice
- For a numerical comparison, a missing value does not become a match just because the comparison is negated.
Filter NAND
Exclude solutions that satisfy every supplied condition together.
- Inputs
- A list of Fitness Filters.
- Outputs
- Negation of the combined AND condition.
- In practice
- NAND means NOT (A AND B). Use it when a particular combination of otherwise acceptable attributes should be excluded.
Filter NOR
Keep solutions that satisfy none of the supplied conditions.
- Inputs
- A list of Fitness Filters.
- Outputs
- Negation of the combined OR condition.
- In practice
- NOR means NOT (A OR B). It is useful for excluding several kinds of unwanted alternatives at once.
Filter XOR
With two inputs, keep solutions that match exactly one condition.
- Inputs
- A list of Fitness Filters.
- Outputs
- Exclusive-or filter.
- In practice
- With more than two inputs, XOR means an odd number of conditions are true. The component warns about this distinction; it does not mean exactly one for a longer list.
2. The filter language
Use a Panel with Filter Expression when a selection is easier to describe in text. Parameter names refer to slider nicknames and named analysis outputs in the current project.
| Syntax | Meaning |
|---|---|
> < >= <= = != | Numerical comparisons. == and <> are accepted alternatives for equality and inequality. |
ID IN (46, 73) | Choose either of the listed project IDs. |
AND OR NOT | Require all, allow any, or negate a condition. |
NAND NOR XOR | Negated AND, negated OR, or an odd number of matching conditions. |
TOP 20 BY Weight | Select the 20 highest recorded Weight values in the project. |
BOTTOM 10 BY Weight | Select the 10 lowest recorded Weight values in the project. |
( ... ) | Group conditions explicitly. |
ID IN (46, 73) ID = 46 OR ID = 73 ID IN (46, 73) AND Weight < 40000 Maximum displacement < 2 AND Structure mass < 40000 BOTTOM 10 BY Structure mass NOT (Weight > 40000)
Names containing spaces can be used as shown. Put names containing punctuation or language keywords in double quotes, for example "Cost ($)" < 50000. A parameter name itself cannot contain a double quote. Use a dot for decimal values; IDs and ranking counts must be whole numbers.
NOT has the highest precedence, followed by AND, followed by the remaining binary operators. Use parentheses when combining OR, NOR, XOR and NAND. Read Parsed as to confirm the grouping before a run.
3. Understand the selected population
Project scope. Parent selection is applied to the project connected through Directory. An ID from another project does not identify the same alternative here.
Highest is not always best. TOP means highest numerical values; BOTTOM means lowest. Choose the direction that fits your objective—for example, lower structural mass or higher usable area.
Rank first, then combine. TOP and BOTTOM rank the current project. A combined expression intersects that ranked set with its other conditions; it does not redefine the ranking population first.
Missing values. Missing entries are excluded from ranking and do not satisfy a comparison or the negation of that comparison. Other branches of a compound rule can still determine whether a solution qualifies.
No matches and invalid rules are different. A valid rule with no matches falls back to random generation. An invalid rule stops generation. Unknown names and missing IDs produce warnings. Inspect component messages and the Parents output.
4. Sliders define the search space
In the current build, number sliders supply the input intervals directly. Morpho reads each slider’s nickname, minimum, maximum and decimal precision; integer sliders use whole-number steps. The genes are quantized to the configured precision.
Older source material may mention Interval or MultiInterval. Those components are not part of the active 2.1 palette. Use number sliders directly rather than searching for separate interval components or connecting a generic number list.
Keep parameter names distinct and consistent across the definition, saved results and filter expressions. Renaming a parameter changes the name that filters need to match.
Follow the connection guide ↗