tch-tch-tch
182 subscribers
36 photos
102 videos
3 files
46 links
hard and soft ways of generative graphics in touchdesigner for designers
Download Telegram
#python_tch

для последовательного суммирования сэмплов массива данных из таблицы и выгрузки в новую таблицу
my_table = op('chopto1')
length = my_table.numRows
op('result').setSize(length,1)
for i in range(length):
if i == 0:
x = my_table[i,0]
else:
x = x + my_table[i,0]
op('result')[i,0] = x

для последовательного суммирования сэмплов массива данных из канала CHOP и выгрузки в новую таблицу
my_list = list(op('pattern1')[0].vals)
length = len(my_list)
op('result').setSize(length,1)
for i in range(length):
if i == 0:
x = my_list[i]
else:
x = x + my_list[i]
op('result')[i,0] = x
2
This media is not supported in your browser
VIEW IN TELEGRAM
Welcome to TchTchTch — канал—записная книжка про генеративную графику в тачдизайнер. Канал веду я — Виктор Тяпков — и оставляю здесь заметки для себя и для вас (а ещё однажды присоединится Антон Шлёнкин и будет писать про p5js).

Как это работает =
#math_tch
про применение математики
#python_tch
про экспрешены и скрипты
#sop_tch
про геометрию
#tool_tch
небольшие инструменты, которые облегчают жизнь (пока только particle helper)
#friday_audioreactive
аудиореактивные шуточки

Зачем это надо =
Для меня этот канал работает как записная книжка, дневник и омут памяти. Для вас может стать поводом изучать среду не по туториалам. Гораздо интереснее быть исследователем, а не пассажиром. Если вам нужна база, приходите ко мне на touch lab basic в типоманию скул.

Что будет =
Сейчас я работаю над программой новой лаборатории про геометрию, glsl и визуализации звука. Рано или поздно я закончу и проведу тестовый запуск. А пока:

Join, merge, connectOutputs
🔥🌈🦄

booooost channel
>>>>>>> direct message
10🔥4🕊2
Media is too big
VIEW IN TELEGRAM
#python_tch клеточные автоматы

Небольшое упражнение — поместить концепцию клеточных автоматов в контекст геометрии.

Задача раскладывается на такие части:
1. Сделать рандомный pattern CHOP, который будет создавать стартовую позицию случайным образом
2. Конвертировать его в список через list()
3. Создавать новые позиции в списке, анализируя предыдущие числа через if—then—else
4. Повторять действие нужное количество раз
5. Экспортировать результаты в таблицу и интерпретировать через SOP
6. Создавать новую стартовую позицию через изменение seed в паттерне

Чем это отличается от какого-нибудь нойза? Порядком. Мы видим, что действует правило (хоть и не можем его считать). Всё как в жизни
5
#python_tch последний сэмпл

Чтобы забрать последний сэмпл из CHOP есть отдельный экспрешн:

op(‘name_of_op’)[0][-1]

Применение? Например:
1. Собираем массивы чисел через join CHOP
2. Длина каждого CHOP привязана к количеству фреймов в глобальном цикле / количество OP подключенных к join CHOP(*)
3. Привязываем в constraints начало нойза к последнему сэмплу предыдущего CHOP
Конец нойза — к первому сэмплу следующего CHOP

Теперь, даже если длина первого CHOP изменится, его последний сэмпл будет влиять на начало нойза

(*) Через len (op(’name’).inputs)
#python_tch if—then—else

способ написания условия в одну строку:
[do this] if … else [do this]

а вообще на картинке и в примере полярная кривая в очень изменённом состоянии

пример в первом комментарии
2
#python_tch if—the—else в одну строку, пример через expression CHOP

1 if me.inputVal > 0.5 else 0
или
сэмпл = 1 если его  входящее значение  > 0.5  иначе сэмпл = 0

немного мастер Йода по конструкции
2
#python_tch seek and destroy ops

 Чтобы найти и удалить все операторы с одинаковым именем, лучший работающий способ:

for o in ops(‘name_of_op*’):
o.destroy()


o = просто название переменной
* = вайлдкард / любой диджит оператора
2
This media is not supported in your browser
VIEW IN TELEGRAM
#python_tch me.digits + replicator

Вы тоже думаете про репликатор «боже, опять эти таблицы»? Я редко пользовался им именно поэтому, несмотря на всю любовь к табличкам. Но,если переключиться в  Replicator method –> by number, многое становится проще.

(1) Вместо таблички может быть  CHOP

(2) В мастере указываем через экспрешн ссылку на конкретный сэмпл массива данных — чем не табличка!

(3) Как? Конечно, через me.digits. Поэтому у мастера надо обязательно задать номер в названии, чтобы фокус сработал.

Пример сделан на обычных TOP без инстансинга. Кружочков можно сделать много. И все они будут вести себя как физические объекты, но внутри только числа — нет никакой системы, имитирующей физику.

Проект поглядеть в первом комментарии как всегда
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
#python_tch specification DAT

Способ управления текстом через единственный text TOP и Specification DAT оказался очень интересным.

Простой пример:
1. Берем системы частиц particle SOP
2. Забираем координаты, ремапим
3. Создаем через скрипт нужное количество буковок из входящего слова (используем модуло — делимость)
4. Объединяем все в одну табличку

И получаем много букв без всякого инстансинга на минимальном количестве нод.

Пример во вложении (надо залезть внутри группы, скрипт для таблички срабатывает при изменении входящего текста)

PS Главное слово в посте — модуло, конечно. В скрипте приходится обходить деление на ноль.
2
Media is too big
VIEW IN TELEGRAM
#python_tch mesh points as list

Ещё один способ пересчитать геометрию из двух и более источников. В примере опять участвует два круга с одинаковым количеством точек и разнымм радиусом

1) конвертируем точки в списки внутри скрипта
2) создаем новый пустой список
3) заполняем его последовательно точками через цикл

а дальше можно что угодно, например сделать из него кривую безье с множеством точек.

Пример в первом комментарии
2