Multiple Circle SOPs from CHOP samples

Is there a way to create multiple circles with the circle SOP? Essentially I am trying to create a series of circles with their radii and divisions driven my chop samples.

I am able reference the chop channels in the circle sop but instead of using each sample to create a separate primitive it time slices the channel.

Manage to do what I needed with a scriptSOP, but still curious about my first method if anyone has any insight.

You can do this with a CopySOP and Stamping inputs.

The basic idea here is that you’d assign a stamp variable to each COPY of your surface operator:
image

You can then use that variable earlier in the network stream to set a value on your geometry - it’s a little like a feedback TOP system in the way that it feels backwards.

In this example I stamped the copies with a value called index which is the copyIndex from the copy SOP:
image

This can in turn be used to look up a sample from a CHOP:
image

The result is a network that looks like this:

Where two different CHOPs define the radius and divisions of your copies. Good gotchas here are making sure that the length of your CHOPs matches the number of copies you have, and that both of your CHOPs have matching lengths.

A resulting SOP might look like this:

Here’s a tox to help you get started with this technique:
base_chops_and_copy_sops.tox (822 Bytes)

2 Likes

Thanks Matthew! Very interesting technique.

A little more about the technique here:

1 Like

I’m trying to use this technique to create an LED mapping but am running into some trouble. Essentially I have a table DAT that has the start and end point of the strip, and the number of LEDs along that strip. I am able to create the line that represents the LED strip but can’t figure out how to put the correct number of divisions on the line.

I have 2 attempts at this which are currently not working in the attached toe.

The first attempts to divide the line prior to copying via the stamp method. The problem with this is that my chop data for the start and end points no longer match the copy data length to transform it correctly.

The second attempt tries to use the stamp data after the chopTosop to refine the curves with stamp as a lookup. However this doesn’t seem to be working and is just applying the last sample to all the primitives.

If anyone has any idea on how to solve this it woul dbe much appreciated!

Lux_LED_Mapping.toe (9.2 KB)

Looking at this, I think a script SOP might be an easier way to tackle this - you could loop through all the rows in your table and construct poly lines with the number of points in your table with a start and end point.

You might be able to do that with the copy SOP as well. Attached is an attempt at using the copy SOP to also set the transforms for the start and end of the LED strips. I don’t know if this is exactly what you’re after, but maybe?

attempt_1_mr_edit.tox (5.1 KB)

The next big question you’ll likely encounter is mapping this thing - a texture SOP might be a good place to start, and then use some extracted UV coords to grab color info from a TOP. Hope this helps!

1 Like

Works like a charm. Thanks!