Simplecircuits
These nodes are designed to be highly customizable. They have many options that can definitely be daunting to anyone who has never seen them before. I have taken care to choose sensible default values so, as a new user, you will only need to adjust the random seeds and perhaps the X/Y sizes in the grid node group. If there is any confusion just message me. If there is common confusion around certain concepts I’ll write up a FAQ.
I want to take a minute to explain some terms for those unfamiliar with electronics. PCB stands for printed circuit board. Boards are usually of a multi layer construction with the top layer being the most familiar to anyone who has ever looked at a circuit board. The lines of copper wires connecting everything are called traces. These are rarely completely exposed in production boards as that would increase the risk of short circuits as well as electric shocks to anyone handling the board. The material covering the traces is called a solder mask. The solder mask will often have a silkscreen applied. This silk screen will document what each component is and often point out test points on the board. Traces cannot overlap each other but will sometimes need to get around each other. This is done with vias. Vias are holes drilled in the PCB that are then coated with copper. This allows a trace to extend into a different layer of the board. SimpleCircuits models most vias as being covered with a solder mask with only some of them being exposed.
[Grid]
This node group creates a simple grid of squares. As the instancer uses the square root of face size to determine scale of instances the optimal face is perfectly square.
Size: This is the edge size of the individual squares
X: Number of squares in the X direction
Y: Number of squares in the Y direction
Z: Z Offset. 0 for normal boards, negative for boards that are inset.
Delete Random Edges: percentage of edge faces to delete. This adds some variability when it’s desired to have a ‘non perfect’ rectangular board.
Seed: The seed for the random deletion
[D5_OBJ_RandomWires_v02]
This node group is for placing some random wires connecting to the circuit board. This node group is still considered beta as I would like to eventually add some basic connectors at the end of the wires as well as implement some variety to the cables (bound groupings of wires, zip ties, randomness, random colors, etc…). Currently the wires that are output are intentionally converted to instances to prevent the BoardGen node group coming after them from attempting to subdivide and place circuit components on them.
Seed: random seed for probability below
Probability: probability for any given point on the board to spawn a wire.
Radius: radius of the wires
Material: material of the wires
Height: this is the distance in the Z+ direction the wires will travel upward before going towards the edges
[D5_Bounding_Box_Cutter_v02]
This node produces a procedural boolean object for the inset circuit boards.
Object: By default this will be pre-filled with the circuit board object the cutter is parented to.
Cavity Z Offset: used to move the main board cavity around. Useful if padding values or wire heights are producing undesirable results at default values
Cavity Padding: Can make the cavity larger or smaller particularly to fix issues in edge cases
Opening Inset: This is how much to inset the opening (larger numbers = smaller opening)
Opening Z: allows adding some offset to the generated cube for the opening. Useful if the circuit board has been set to lower than usual
[BoardGen_Collection_v01] [BoardGen_AIO(Modern)_v01] [Circuit_v01_Gen]
These are the primary generators. They have some slight differences in their options based on use cases.
Main Options
Seed: covers both traces and instances
PCB Thickness: how thick to make the PCB. This is offset in the z+ direction
Z Offsets: How much space between the PCB, the traces, vias, and instances. Can be set higher or lower if there are problems with zfighting.
Realize Instances: Primarily used to “apply modifiers” and convert a board from procedural to static.
Disable PCB (Circuit_v01_Gen): this disables the PCB generation. This prevents zfighting between the new mesh and the source mesh.
Collection-Top (BoardGen_Collection_v01, Circuit_v01_Gen): Hero element collection, automatched in flex
Collection-Bot (BoardGen_Collection_v01, Circuit_v01_Gen): bottom/cluster element collection, automatched in flex
Traces
SubD Level: How many times to subdivide the mesh for traces. Traces are generated from these edges (Excluding the perimeter loop)
Radius: Radius of Vias and thick traces, thin traces are half this value.
Recursion: Traces are generated by choosing random start and end points and a path is chosen between them. Those edges are then deleted from the mesh and new points are chosen. Recursion depth is how many times this process takes place.
% Start: Probability of a vertex becoming a start point for the edge path selection
% End: Probability of a vertex becoming the endpoint for edge path selection
Randomize Paths: Randomize the edge costs. This produces a more scattered group of traces with minimal straight lines
3d Traces (Circuit_v01_Gen): This option is only available in the flex version of the generator. There are issues when dealing with faces that are anything but pointing straight up on the Z axis. The 3d traces option creates cylinders and spheres instead of planes and circles. This looks better at the cost of realism.
Merge Traces by Distance: this option merges trace vertices by distance. It’s extremely slow but does an excellent job at cleaning up shading issues. This option is always enabled during renders.
Instances
SubD Level: Instances are generated at the center of faces. This option controls how many subdivisions occur before the first round of instancing.
Source Size: Instance size is controlled by surface area of the face. So this value is the size of the details to be instances. Internally the instances are scaled to 1m edge size then scaled down to the square root of the face area. This parameter is an inverse so the larger the number the smaller the element.
Fill%: Approximate percentage of fill.
Top%: How many hero elements should be instances on the first layer of placements
Alignment (Circuit_v01_Gen): This option is for controlling the face alignment when dealing with non-planar face groups (like rings). A number of configurations are available just scroll through them until you find a permutation that works for your topology. The default should work for a normal Z+ oriented mesh.
Delete Overhang (Experimental): 3.4 only! This uses raycasting to try to detect if instances are hanging over the edges of the board and remove them. The process is slow so only recommended after all other options are finalized. It’s also not perfect. Right now it works best if things are relatively flat along the X/Y axis.
Materials
PCB Base
PCB Edge
Trace
Via
Via(Exposed)
Discover more products like this
Circuitboard summer24 kpack spring24 bfcm24 printed circuit board kitops winter24 integrated circuit dpack circuit electronic simple scifi flex