git clone https://git.lucas.co/hou-control.git
notes: put notes in the notes folder
hou-developer guide.txt | 367 ----------------------------------------
hou-developer readme.md | 3 -
hou-gem production_notes.txt | 20 ---
hou-gem readme.md | 24 ---
hou-immutable-methods readme.md | 4 -
notes/GEM production notes.md | 18 ++
notes/GEM.md | 24 +++
notes/IM.md | 0
notes/hou-developer.md | 237 ++++++++++++++++++++++++++
notes/style.md | 0
notes/systems.md | 27 +++
11 files changed, 306 insertions(+), 418 deletions(-)
diff --git a/hou-developer guide.txt b/hou-developer guide.txt
deleted file mode 100755
index 6ac88af..0000000
--- a/hou-developer guide.txt
+++ /dev/null
@@ -1,367 +0,0 @@
-> Plugin Guide <
-> Shapeshifter <
-> Version 0.1 <
-> Document Updated: 2024 <
-> Lucas Galante <
-
-
-> Outline <
-
-Shapeshifter operators are chained together inside of a SOP Solver node or other simulation environment. There are many operators that can be combined to create interesting results. There is a lot of flexibility for how operators can be used but a general structure should be followed.
-
-
-> Looking Ahead <
-
-
- >> Attributes Or Groups? <<
-
- This question easily leads into the larger topic of how data is stored for dynamical operations. There are two main types of data in Shapeshifter:
- 1. Live data
- This type of data is fluid and runs like a stream through the simulation.
-
- 2. Derivative data
- This type of data is calculated anew on a per-step basis. It is derived from live data.
-
-
- >> Regions <<
-
- After spending a lot of time on the GEM mold design suite, I am a little bit more experienced with treating one conceptually whole model as an amalgam of distinct parts with unique and overlapping attributes. It has also helped me greatly with visualizing how a developed form with distinct surface regions could look like, and how those regions might evolve during the model's life. The idea of regions in models reminds me of organs which are fit together in form and function to create a living thing.
-
- It is also interesting to consider how regions in a model are like the programmatic elements of architecture or ecology. These are both systems where multiple functions are built into a single categorical space. Disease might spread through a limb. It may leave a trail of evidence behind, or eviscerate its host. Living models are host to a variety of mechanisms which influence their status. Viral forms might travel through their host in a determined route and change the host's nature depending on where they travel. Morphogen gradients are interesting because they are a clear example of how the distribution of matter can influence tangible form. One of the most interesting aspects of a living model's body is how definitively its physical boundaries are defined. Before they are really there, the boundary of a living model is predictable. It requires an environment which supplies the real elements of itself, but the information on exactly where those elements will go is present ahead of time.
-
-
-> Operator Types <
-
-
- >> Pre-simulation Operators <<
-
- The embryo or seed is created, initial selections and value assignments are made, attributes that will be used are introduced and generally initial conditions are set. Pre-simulation operators define the characteristics and landscape of a simulation before it runs. Attribute templates and starting geometry are supplied to be fed into the simulation network.
-
-
- >> Simulation Attribute Operators <<
-
- Value operators operate on simulation attributes which are present for the entire simulation.Simulation attributes are persistent from the end of one frame to the beginning of another.
-
-
- >> Development Attribute Operators <<
-
- During this stage of the simulation network, simulation attributes are composited into development attributes. Development attributes are cleared at the end of each frame and need to be constructed from the same corresponding simulation attributes for every frame. Development attributes tell the surface development operators how the surface will change.
-
-
- >> Surface Development Operators <<
-
- Surface Development Operators read development attributes and use that information to transform the mesh or volume. Aside from position and normal, attributes are untouched. At this point, Value assignments remain the same until the next frame.
-
-
- >> Meshing Operators <<
-
- Once the geometry has been deformed, meshing operators are the final step in the simulation process.Meshing operators adjust the topology of geometry. This ensures that the number of data points in a mesh is always proportional to ts surface area. The surface is remeshed to keep make primitives and points conform to some regular formation.
-
-
-> Attributes <
-
-
-Most attributes are assigned to the geometry instance in the preparation phase.
-Attributes belong to categories based on their function.
-
-
- >> Age <<
-
- Values have ages which are affected by a few different criteria.
-
- Increment
- - 1
- - The value of the attribute
- - Some factor of a scale / normalized value
-
- Reset
- -
-
-
-> Larger Ideas <
-
-
- >> Development <<
-
- To effectively develop this package, categories need to be created which
-
-
- >> Topological Considerations <<
-
- At this point in time, the Shapeshifter operator package is primarily concerned with the surface of digital models. Unlike many other approaches to similar design queries its operators involve direct analysis and development of closed forms, not an underlying network or structure to which is later assigned volume.
-
-
-> Operator Categorization <
-
-Nodes are distributed into categories based on their function. Nodes which operate on or output scalar or vector attributes are separated. The reason for this is simplifying the development of nodes. Nodes with more complex options are more difficult to modify, and because a holistic vision for the inerface hasn't materialized, it's easier to keep them separated, at least for now.
-
-
-> Geometry Classes <
-
-
- >> Vertices <<
-
- As of yet there aren't any well-defined use cases for vertex attributes.
-
-
- >> Points <<
-
- The majority of nodes operate on point attributes. The keystone of shapeshifter is the develop and remesh node pair. The develop node requires point attributes to modify the topology of surfaces over time, so it makes sense to focuse primarily on point attributes.
-
-
- >> Primitives <<
-
- If a clear use-case for primitive attributes becomes clear.
-
-
- >> Detail <<
-
- Global attributes are useful for storing statistics and analyses.
-
-
-> Operator Categories <
-
-
- >> Scalar <<
-
- Scalar nodes which edit the values of scalar attributes.
-
-
- >> Vector <<
-
- Vector sodes which edit the values of vector attributes.
-
-
- >> Surface <<
-
- Surface nodes utilize input attributes to alter the topology of the geometry.
-
-
- >> Volume <<
-
- Volume nodes modify volumes that exist in tandem with mesh geometry. Volume nodes are not fleshed out and need very basic development.
-
- Looking ahead idea #1: Volumes can be reservoirs of value when a vector directs value to flow either inside of (Shapeshifter Core.) the geometry or away from the surface of the geometry (Shapeshifter Miasma.)
-
-
-> Operators <
-
-
- >> Scalar <<
-
-
- >>> Scalar Analysis <<<
-
-
- Analyze poperties of scalar attributes.
-
- Analysis attributes provide specific information about scalar attributes.
-
- Analyses can be toggled on and off in the operator's parameter interface.
-
- Some analyses are per-point, and others are operations involving sets of points.
-
-
- >>> Scalar Composite <<<
-
- Combine attributes in different configurations.
-
- Will likely be combined with "Scalar Combine".
-
-
- >>> Scalar Combine <<<
-
- Combines attributes using different methods.
-
-
- >>>> Looking Ahead <<<<
-
- A standard Attribute Combine operator is shipped with Houdini. It has several interesting options, so it is not clear if the Shapeshifter version should be kept in the package.
-
-
- >>> Scalar Concentrate <<<
-
- Similar in function to "Scalar Diffuse", only in reverse.
-
- >>>> Looking Ahead <<<<
-
- It's possible that this operator can be replaced by setting "Scalar Diffuse" to a negative number.
-
-
- >>> Scalar Diffuse <<<
-
- Diffuses attribute values over a surface.
-
-
- >>> Scalar Initialize <<<
-
- Pre-sim: Initializes attributes that will be used during simulation.
-
-
- >>> Scalar Map <<<
-
-
- >>> Scalar Migrate <<<
-
-
- >>> Scalar Normalize <<<
-
-
- >>> Scalar Ramp <<<
-
-
- >>> Scalar Weight <<<
-
-
- >>> Submute Begin <<<
-
-
- >>> Submute End <<<
-
-
- >>> Lead <<<
-
-
- >> Vector <<
-
-
- >>> Vector Analysis <<<
-
-
- >>> Vector Composite <<<
-
-
- >>> Vector Conform <<<
-
-
- >>> Vector Diffuse <<<
-
-
- >>> Vector Direct <<<
-
-
- >>> Vector From Scalar <<<
-
-
- >>> Vector Migrate <<<
-
-
- >>> Vector Normalize <<<
-
-
- >>> Vector Rotate <<<
-
-
- >>> Vector Unify <<<
-
-
- >>> Vector Weight <<<
-
-
- >> Surface <<
-
-
- >>> Surface Adapt <<<
-
-
- >>> Surface Open <<<
-
-
- >>> Surface Suture <<<
-
-
- >>> Subdivide <<<
-
-
- >>> Remesh <<<
-
-
- >>> Detangle <<<
-
-
- >>> Develop <<<
-
-
- >> Time <<
-
-
- >>> Time <<<
-
-
- >>> Time Ramp <<<
-
-
- >>> Time Switch <<<
-
-
- >>> Solver <<<
-
-
- >> Region (Tentative) <<
-
-
- >>> Analyze (Tentative) <<<
-
-
- >>> Vitality <<<
-
-
- >>> Edge Analysis <<<
-
-
- >>> Analyze Change <<<
-
-
- >> Volume (Tentative) <<
-
-
- >>> Miasma <<<
-
-
- >>> Core <<<
-
-
- >>> Uncategorized Nodes <<<
-
-
- >>> Select <<<
-
-
- >>> Region Center <<<
-
-
- >>> Promote <<<
-
-
- >>> Panel <<<
-
-
- >>> ID <<<
-
-
- >>> Expire <<<
-
-
- >>> Energize <<<
-
-
- >>> Embryo <<<
-
-
- >>> Cull <<<
-
-
- >>> Combine <<<
-
-
- >>> Constant <<<
-
-
- >>> Embryo (Surface?) <<<
-
-
- >>> Measure <<<
-
-
- >>> Metamax (Irrelevant?) <<<
-
diff --git a/hou-developer readme.md b/hou-developer readme.md
deleted file mode 100755
index 72385ea..0000000
--- a/hou-developer readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-DOL - Digital Organ Library
-
-Creating lifelike elements in digital containers
diff --git a/hou-gem production_notes.txt b/hou-gem production_notes.txt
deleted file mode 100644
index eec8d4f..0000000
--- a/hou-gem production_notes.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-> Notes about the second working cast, June 2024
-
- > Regarding Scale
-
- I've tried to use a 1 millimeter:1 unit equivalancy. This scale is so much broader than any scale I've worked with before and the numbers become arbitrarily large. I think that I should use 1 centimeter:1 unit scale in the future.
-
- > Regarding GEM Mold Shell
-
- One of the most important parameters is the thickness range of the GEM Mold Shell operator. It is necessary to choose a thickness that is thick enough to print properly and have maintain adequate rigidity while also being thin enough to remove post-resing cure post-hydrocal cure.
-
- According to the original cast which had very good parameters for the GEM Mold Shell, the parameters were set to the following choices:
-
- Maximum Thickness..... 0.75 (mm/units)
- Minumum Thickness..... 0.6 (mm/units)
- Remesh Division Size.. 0.9
- Ramp.................. Linear
-
- > Regarding UV Curing
-
- Using my Peopoly Phenom curing box, I have basically been using the default settings from 3-6 minutes. I think it would be a good idea to do like 5 minutes of interval curing, if I can figure out how.
diff --git a/hou-gem readme.md b/hou-gem readme.md
deleted file mode 100644
index f51a223..0000000
--- a/hou-gem readme.md
+++ /dev/null
@@ -1,24 +0,0 @@
-GEM - General Export Methods.
-Tools for getting things out of the computer.
-
-Operators:
-
-GEM Build Area
-
-GEM Flange Monoid
-
-GEM Halo Merge
-
-GEM Mold Flange
-
-GEM Mold Preprocess
-
-GEM Mold Shell
-
-GEM Mold Solver
-
-GEM Mold Structure
-
-GEM Orient
-
-GEM Partition
diff --git a/hou-immutable-methods readme.md b/hou-immutable-methods readme.md
deleted file mode 100755
index 7547a92..0000000
--- a/hou-immutable-methods readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
-IMMM - Immutable Methods
-
--Flexible library for programmatic geometry manipulation
--Modular elements create stable & predictable results regardless of the target's non-formal properties. Hence, methods which are "immutable."
diff --git a/notes/GEM production notes.md b/notes/GEM production notes.md
new file mode 100644
index 0000000..6aff1f1
--- /dev/null
+++ b/notes/GEM production notes.md
@@ -0,0 +1,18 @@
+# Notes about the second working cast
+## June 2024
+
+### Scale
+I've tried to use a 1 mm:1 unit equivalancy. This scale is so much broader than any scale I've worked with before and the numbers become arbitrarily large. I think that I should use 1 centimeter:1 unit scale in the future.
+
+## GEM Mold Shell
+One of the most important parameters is the thickness range of the GEM Mold Shell operator. It is necessary to choose a thickness that is thick enough to print properly and maintain adequate rigidity while being thin enough to remove post-resin cure post-hydrocal cure.
+
+According to the original cast which had very good parameters for the GEM Mold Shell, the parameters were set to the following choices:
+```
+ Maximum Thickness..... 0.75 (mm/units)
+ Minumum Thickness..... 0.6 (mm/units)
+ Remesh Division Size.. 0.9
+ Ramp.................. Linear
+```
+## UV Curing
+Using my Peopoly Phenom curing box, I have basically been using the default settings from 3-6 minutes. I think it would be a good idea to do like 5 minutes of interval curing, if I can figure out how.
diff --git a/notes/GEM.md b/notes/GEM.md
new file mode 100644
index 0000000..31f8090
--- /dev/null
+++ b/notes/GEM.md
@@ -0,0 +1,24 @@
+# GEM
+## General Export Methods - tools for getting things out of the computer
+
+# Operators
+
+## GEM Build Area
+
+## GEM Flange Monoid
+
+## GEM Halo Merge
+
+## GEM Mold Flange
+
+## GEM Mold Preprocess
+
+## GEM Mold Shell
+
+## GEM Mold Solver
+
+## GEM Mold Structure
+
+## GEM Orient
+
+## GEM Partition
diff --git a/notes/IM.md b/notes/IM.md
new file mode 100644
index 0000000..e69de29
diff --git a/notes/hou-developer.md b/notes/hou-developer.md
new file mode 100644
index 0000000..dea2d8e
--- /dev/null
+++ b/notes/hou-developer.md
@@ -0,0 +1,237 @@
+# Developer Houdini Plugin
+### Version 0.1
+### Author: Lucas Galante
+### Document Updated: December 2025
+
+# Outline
+
+Developer operators are combined in SOP solver and DOP contexts in Houdini. Creating lifelike elements in digital containers.
+
+
+# Looking Ahead
+
+## Attributes Or Groups?
+
+This question easily leads into the larger topic of how data is stored for dynamical operations. There are two main types of data in Shapeshifter:
+### 1. Live data
+Fluid data which runs like a stream through the simulation.
+
+### 2. Derivative data
+Data calculated anew every frame. It is calculated based on live data.
+
+## Regions
+
+After making the GEM mold operators, I am more experienced with treating a model as a composite of distinct parts and overlapping attributes. It has also helped me visualize what a developed form with distinct surface regions can look like and how the regions might evolve during the model's life. The idea of regions in a model reminds me of organs which fit together physically and programmatically.
+
+It is interesting to consider how regions in a model are like programmatic elements in architecture and ecology. These are both structures where multiple functions are built into a one body. Disease may spread through a limb and leave a trail of evidence or destroy its host. Living models host mechanisms which influence their status. Viruses can travel within their host in directions informed by sense input and change the host's nature depending on where they travel. Morphogen gradients are interesting because they demonstrate how distribution of matter on one scale can influence form on another scale.
+
+Another property of a living model is how definitively its boundaries are defined. Before they are really there, the boundary of a living model is predictable. It requires an environment which supplies the real elements of itself, but information about where those elements will go is present ahead of time.
+
+## Operator Categorirs
+
+### Pre-Simulation
+The embryo or seed is created, initial selections and value assignments are made, attributes that will be used are introduced and initial conditions are set. Pre-simulation operators define the characteristics and landscape of a simulation before it runs. Attribute templates and starting geometry are supplied to be fed into the simulation network.
+
+### Simulation Attribute Operators
+Value operators operate on simulation attributes which are present for the entire simulation.Simulation attributes are persistent from the end of one frame to the beginning of another.
+
+### Development Attribute Operators
+During this stage of the simulation network, simulation attributes are composited into development attributes. Development attributes are cleared at the end of each frame and need to be constructed from the same corresponding simulation attributes for every frame. Development attributes tell the surface development operators how the surface will change.
+
+### Surface Development Operators
+Surface Development Operators read development attributes and use that information to transform the mesh or volume. Aside from position and normal, attributes are untouched. At this point, Value assignments remain the same until the next frame.
+
+### Meshing Operators
+Once the geometry has been deformed, meshing operators are the final step in the simulation process.Meshing operators adjust the topology of geometry. This ensures that the number of data points in a mesh is always proportional to ts surface area. The surface is remeshed to keep make primitives and points conform to some regular formation.
+
+### Attributes
+Most attributes are assigned to the geometry instance in the preparation phase.
+Attributes belong to categories based on their function.
+
+### Age
+Values have ages which are affected by a few different criteria.
+
+ Increment
+ - 1
+ - The value of the attribute\
+ - Some factor of a scale / normalized value
+
+ Reset
+ -
+
+
+## Larger Ideas
+
+### Development
+To effectively develop this package, categories need to be created which
+
+### Topological Considerations
+At this point in time, the Shapeshifter operator package is primarily concerned with the surface of digital models. Unlike many other approaches to similar design queries its operators involve direct analysis and development of closed forms, not an underlying network or structure to which is later assigned volume.
+
+### Operator Categorization
+Nodes are distributed into categories based on their function. Nodes which operate on or output scalar or vector attributes are separated. The reason for this is simplifying the development of nodes. Nodes with more complex options are more difficult to modify, and because a holistic vision for the inerface hasn't materialized, it's easier to keep them separated, at least for now.
+
+### Geometry Classes
+
+#### Vertices
+As of yet there aren't any well-defined use cases for vertex attributes.
+
+#### Points
+The majority of nodes operate on point attributes. The keystone of shapeshifter is the develop and remesh node pair. The develop node requires point attributes to modify the topology of surfaces over time, so it makes sense to focuse primarily on point attributes.
+
+#### Primitives
+If a clear use-case for primitive attributes becomes clear.
+
+#### Detail
+Global attributes are useful for storing statistics and analyses.
+
+## Operator Categories
+
+### Scalar
+Scalar nodes which edit the values of scalar attributes.
+
+### Vector
+Vector sodes which edit the values of vector attributes.
+
+### Surface
+Surface nodes utilize input attributes to alter the topology of the geometry.
+
+### Volume
+Volume nodes modify volumes that exist in tandem with mesh geometry. Volume nodes are not fleshed out and need very basic development.
+
+Looking ahead idea #1: Volumes can be reservoirs of value when a vector directs value to flow either inside of (Shapeshifter Core.) the geometry or away from the surface of the geometry (Shapeshifter Miasma.)
+
+
+# Operators
+
+## Scalar Analysis
+Analyze poperties of scalar attributes.
+
+Analysis attributes provide specific information about scalar attributes.
+
+Analyses can be toggled on and off in the operator's parameter interface.
+
+Some analyses are per-point, and others are operations involving sets of points.
+
+## Scalar Composite
+Combine attributes in different configurations.
+
+Will likely be combined with "Scalar Combine".
+
+## Scalar Combine
+Combines attributes using different methods.
+
+### Looking Ahead
+A standard Attribute Combine operator is shipped with Houdini. It has several interesting options, so it is not clear if the Shapeshifter version should be kept in the package.
+
+## Scalar Concentrate
+Similar in function to "Scalar Diffuse", only in reverse.
+
+### Looking Ahead
+It's possible that this operator can be replaced by setting "Scalar Diffuse" to a negative number.
+
+## Scalar Diffuse
+Diffuses attribute values over a surface.
+
+## Scalar Initialize
+Pre-sim: Initializes attributes that will be used during simulation.
+
+## Scalar Map
+
+## Scalar Migrate
+
+## Scalar Normalize
+
+## Scalar Ramp
+
+## Scalar Weight
+
+## Submute Begin
+
+## Submute End
+
+## Lead
+
+## Vector Analysis
+
+## Vector Composite
+
+## Vector Conform
+
+## Vector Diffuse
+
+## Vector Direct
+
+## Vector From Scalar
+
+## Vector Migrate
+
+## Vector Normalize
+
+## Vector Rotate
+
+## Vector Unify
+
+## Vector Weight
+
+## Surface Adapt
+
+## Surface Open
+
+## Surface Suture
+
+## Subdivide
+
+## Remesh
+
+## Detangle
+
+## Develop
+
+## Time
+
+## Time Ramp
+
+## Time Switch
+
+## Solver
+
+## Region (Tentative)
+
+## Analyze (Tentative)
+
+## Vitality
+
+## Edge Analysis
+
+## Analyze Change
+
+## Volume/Miasma
+
+## Volume/Core
+
+## Filter/Select
+
+## Region/Region Center
+
+## Attribute/Promote
+
+## Visualize/Panel
+
+## ID
+
+## Age/Expire
+
+## Energize
+
+## Create/Embryo
+
+## Filter/Cull
+
+## Combine
+
+## Constant
+
+## Measure
+
+## Metamax (Irrelevant?)
diff --git a/notes/style.md b/notes/style.md
new file mode 100644
index 0000000..e69de29
diff --git a/notes/systems.md b/notes/systems.md
new file mode 100644
index 0000000..84fb35d
--- /dev/null
+++ b/notes/systems.md
@@ -0,0 +1,27 @@
+Processing feedback in dynamic systems
+
+In a dynamic systm or simulation, variables inform the procession of model states as the variables themselves develop.
+
+If the volume of an expanding object has an inverse correlation with its growth rate, the growth rate slows as the object grows.
+
+variables inform other variables. In a circulatory system made of pipes or blood vessels, matter flows continuously. It is a semi-closed loop with limited inputs and outputs. If there is buildup in the circuit, the function of the greater system of which it is part of will be altered.
+
+Macro-organs like blood vessels seem simple compared to their micro-counterparts. On small scales, chemical reactions destroy, alter and create themselves constantly. The behavior of macro organs is the effect of this unseen behavior.
+
+A fluid transportation system might have two aspects: the purpose of the system and its health. Its health is its ability to operate in the way that is understood to be correct. In a way, in biology, it is not really possible to determine the purpose of a strategy outside of the context of the maintenance of the things which are doing things.
+
+There is a disctinction between an object and what is around it and not the object. Entity-hood is a discernible quality of systems and things. Examples are:
+- a cell and a cell wall
+- a walled city and the land around it
+
+Prescribing intention and purpose to things is difficult.
+
+Two thoughts:
+1. Intuitive understanding of dependence and independence
+2. Assignment of traits such like desire, purpose and intent to items and circumstances aka things.
+
+Aqueduct problem: aqueous flora, mineral deposits and silt build up and constrict the vessel at some points. I am a Roman noble and lately my bath has been taking twice as long to fill. I need to use more wood to heat the water because it has more time to cool before my water basin is full. Therefore the servant who heats my bath has less time to peel shrimp. I have to assign another servant to peeling shrimp and now she has less time to talk to her friends at the spring, so she is more upset, and that is unpleasant to me. This demonstrates an evology.
+
+Idefining the behavior of a simulated dynamical system requires partitioning information commensurate with what the system should clarify. Programs analyzing force or diffusion in materials may consider some of the behavior of particles on a very minute scale, but there is always a limit, and the magnitude of data in silica does not begin to approach the real world, especially in organic scenarios. To be effective, a model must predict the summation of behavior at a smaller scale. If the behavior of groups of actors is predictable, a model can be made. Somebody might call this "emergent behavior" because it concerns a result borne from an aggregate of actors.
+
+ Tissue growth relies on principles which yield observable results. I am modeling a system which reproduces a speculative observable result, usually without attempting to reproduce the actual chemical dynamics of my target phenomena. Cells multiply and are arranged so that they form tissue. The substance of tissue is a product of a metabolism, which is a system not unlike an aqueduct. Components are broken down into more basic chemical composition for use in the body along the way.