На CBB – Telegram
На CBB
108 subscribers
98 photos
70 videos
5 files
181 links
This blog has been archived. Feel free to browse if you're looking for interesting or lesser-known Houdini content. Enjoy!
Download Telegram
#aoc #houdini #contest #vex #hdk #python #top #expression #solaris #dop

Увидел очень прикольный, японский ресурс, где пользователи уже который год соревнуются в решении задач Advent of Code используя Houdini. Можно почерпнуть много новых, приёмов работы и подходов для самых разных контекстов. Автопереводчики в целом справляются, поэтому проблем с пониманием быть не должно.

https://qiita.com/advent-calendar/2024/houdini
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #vex #formatter #noscripting #python #devlog

Концепт этого маленького проекта возник давно, когда я увидел, что артисты пишут в "сниппетах" в очень разном стиле, как удобно им, однако визуально выглядит хорошо когда код "ровный" и выдержанный в едином стиле везде. Я недолюбливаю внешние редакторы кода для этого поскольку это выглядит громоздко и окна сниппета мне всегда хватало.

В VEX к сожалению нет встроенного авто-форматирования кода, а SideFX не оставила спецификаций или стандартов которых можно придерживаться, поэтому все пишут по-разному.

Короче говоря, мы хотим из такого:
if(1)
{
doSomething(1);
}
else if(2)
{
doSomething(1, 2);
}

Сделать такое:
if (1) {
doSomething(1);
} else if (2) {
doSomething(1, 2);
}

В первой итерации проекта просто "прикрепим" фоном clang-format с гугловским стилем форматирования (по умолчанию) кода на языке C к сниппету и с колбэком на обновление сниппета, когда он меняется - код форматируется, по демонстрации видно, что уже неплохой результат получается.
🔥1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #meme

Ну чё, народ!? Погнали, нахуй! (c)

Посылаю баф, на то чтобы читатели перестали смотреть базу по VEX обновлять постоянно драйвера, стебать мпм солвер за скорость и разобрались чем саблейер отличается от референса.
Не боялись прыгать в новом году в неизведанное, неосвоенное, новое, всё равно кому-то из вас придётся 🙂..и конечно быть/стать первооткрывателями и ведущими специалистами в своих областях. И да прибудет с вами Джефф Вагнер.
14🎉5👍2
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #hny2025

HNY! 💥🍾
Пусть в этом году всё будет только ТОП! 🎩
🎉7🎄4😁1
#houdini #meme

На тему модных сейчас "ред флагов", но на рабочих Гудиньщиков, поехали:

- он серьёзно относится к дизайну рабочего окружения: меняет тёмную тему оформления на белую, а лучше Pro, кастомизирует дефолтные шрифты с панелями, меняет рабочий воркспэйс с Build на Technical, потому что там есть слово Technical, а это как бы сразу всем намекает, что ты не джун еб?ный..

- "по-сеньорски" сохраняет сцену (для усиления эффекта иногда с матом) несколько раз подряд чтобы точно наверняка

- считает, что перезагрузка ПК реально всегда помогает

- назначает своей приоритетной задачей написать (обязательно кастомный) "коллект для сцены" которого ещё никто не написал

- коллекционирует платные курсы, а смотрит только бесплатные

- умышленно и сильно прибедняется: показывает красивый результат, но просит не судить строго потому что он на "коленке набросал" его за пару вечеров (а на самом деле 3 месяца его пилил..)

- умышленно добивается снисхождения: показывает очень хреновый результат, но просит не судить строго потому что он на "коленке набросал" его за пару вечеров (а на самом деле 3 месяца его пилил..)

- любит всё резюмировать словами "там писать короче надо..."

- поддерживает разговор на тему, что "SideFX уже как бы кал", но не cможет объяснить почему

- заводит свой блог чтобы всем показывать незаконченные тесты

Вот и думайте.. 🙂
😁15🤡3
#houdini #vex #cghub #opensource #github

Прямо перед новым годом я законтрибьютил на CGHub оригинальную статью Pedohorse на тему продвинутого и базового VEX'a, это тот самый труд который он выкладывал ещё в Google Docs, наверняка много кто про это помнит или слышал, видел.

Я перенёс эту статью полностью в формат Markdown и немного дополнил, то, что сам знал или являлось новым для VEX, например использование "структур на месте".

Теперь эту статью намного приятней читать прямо в браузере, она нисколько не потеряла в своей актуальности, такие вещи не устаревают, но самое главное, что теперь её расширять и исправлять стало удобней через PR на GitHub используя форк основного репозитория.

Так, что не стесняйтесь вносить свой вклад и наполнять хаб полезным контентом!

https://pedohorse.github.io/cg-community-hub/houdini/vex
11🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
#neovide #ide #fx #meme

Пижонство activated.

Когда хочешь свои дэйлизы вместе со всеми смотреть на большом экране.
😁62
Channel name was changed to «На CBB»
С праздником, дорогие подписчицы!

Будьте смелыми и не бойтесь трудностей!
3
#python #github #rust #uv #packagemanager

Всё ещё собираете проекты на Python и используете кучу разрозненных инструментов типа: pip,pipx,poetry,virtualenv и т.д?

Попробуйте этот чрезвычайно быстрый пакетный менеджер uv для проектов на языке Python, написанный на Blaaazziing Rust. Да, сейчас в трендах всё переписывать на Rust от системных утилит до драйверов в ядре Linux, но тут пока сложно.

Он заменяет все инструменты одним, подходит для написания простых скриптов до работы над крупными проектами, поддерживающими различные библиотечные зависимости, несколько версий и платформ Python. Подробные хайлайты в описании.
А, ну и да, этот проект от создателей Blaazzing линтера Ruff для Python.

https://github.com/astral-sh/uv
😁7🔥3🤡1
#houdin #hdk #cpp #github

Автор реализовал на HDK для H20.5 различные задачи прикладной математики: линейной алгебры, векторного анализа, уравнения в частных производных, вариационный принцип, оптимизация и численный анализ с помощью методов анимации для партиклов, твердых тел, упругих тел.

Задачи которые он решал:

- Implicit Time Integration
- Linear Momentum Conservation
- Acceleration of N-body Simulation
- Accelerated Nearest Search using Kd-Tree
- Gradient Descent for Mass-Spring Simulation
- Dynamic Mass-spring System using Variational Euler Time Integration
- Solving Laplace Equation with Gauss-Seidel Method
- Controlling Volume of a Mesh using Lagrange-Multiplier Method
- Rotation and Energy Minimization
- Simulation of Rigid Body Precession

На гите есть небольшая простая справка как скомпилировать эти плагины и поиграться с примерами сцен которые идут вместе с плагинами.

GitHub:
https://github.com/Xayah-Hina/Physics-based_Animation_2023S?tab=readme-ov-file
🔥5
#houdini #highlight #changelog

- Теперь можно дебажить функциональность ивентов клавиш Qt через метод hou.qt._setDebugKeyEvents(). Метод судя по всему не публичный, поэтому детали использования придётся искать в коде.

- Реализован <noscriptMenuStripDynamic> для XMLMenus, используемого в коде Qt/Python (например, панели Python). Это позволяет скрипту генерировать последовательность скриптовых записей в меню. <contentsnoscriptcode> оценивается, и, следовательно, записи генерируются при открытии меню, а не когда оно первоначально парсилось.

Для примера:
<subMenu id="mySubMenuId">
<label>Colors</label>
<noscriptMenuStripDynamic id="myUniqueDynamicStripId">
<contentsScriptCode><![CDATA[
menu_items = ["r", "R", "g", "G", "b", "B"]
return menu_items
]]></contentsScriptCode>
<noscriptCode><![CDATA[
import hou

token = kwargs["selectedtoken"]
label = kwargs["selectedlabel"]

hou.ui.displayMessage("%s (%s)" % (label, token))
]]></noscriptCode>
</noscriptMenuStripDynamic>
</subMenu>


Иными словами выполнение начинается сразу же, когда выбирается соответствующий пункт в меню. Чтобы отложить выполнение до тех пор, пока меню не закроется можно использовать hdefereval в секции <noscriptCode>.

<noscriptCode><![CDATA[
def runLater():
hou.ui.displayMessage("Hello World")

import hdefereval
hdefereval.executeDeferred(runLater)
]]>
</noscriptCode>


Из ограничений:
- В настоящее время нет возможности динамически включать и отключать пользовательские меню/пункты.
- Меню по умолчанию используют дополнительные теги, не определенные выше. Эти теги тесно связаны с внутренней реализацией Houdini и в настоящее время не пригодны для пользовательской настройки.

А так же исправляется большой пласт ошибок связанный с активным переходом на PyQt6/PySide6.

https://news.1rj.ru/str/houdini_main_changelogs/605
🔥2
#steam #nvidia #rtx #games

Комьюнити мод на легенду релизнулся, выглядит конечно как псевдореализм, всё таки из движка много не вытащишь, но выглядит лучше конечно.
В целом отзывы позитивные, работы много проделано, но некоторые отмечают, что VRAM выедается очень хорошо. Надо будет выделить вечерок для ностальгии.

Half-Life 2 RTX uses the latest version of RTX Remix leveraging new RTX Neural Rendering technologies, cutting-edge full ray tracing, accelerated by NVIDIA DLSS 4 with Multi Frame Generation, and NVIDIA Reflex to bring one of the greatest video games of all time to life in a whole new light.

https://store.steampowered.com/app/2477290/HalfLife_2_RTX/
4
#blender #ai #opensource #cursor #videcoding

BlenderMCP интегрирует Claude AI, разработанный компанией Anthropic, в Blender через протокол Model Context Protocol (MCP), позволяя Claude напрямую взаимодействовать с Blender и управлять им.

Кажется это тот самый "Vibe Coding", но взятый на манер 3д когда мы можем в одной руке держать лавандовый раф, а другой рукой писать генерировать промты для сцены наслаждаясь видом на море из пляжной сторожевой башни. Так нам обещают маркетологи, но когда я впервые услышал про "вайб-кодинг" я подумал, что вообще ничего делать не надо..

"Вайб-кодинг" или "СДВГ-кодинг", он же "AI-assistant coding" - метод программирования, основанный на использовании больших языковых моделей (LLM) и искусственного интеллекта (AI) для генерации программного кода на основе описания задачи на естественном языке.

Относительно недавний термин успевший за месяц наделать много шума и массово критикуемый опытными разработчиками за злоупотребление начинающими разработчиками которые не будут думать о секьюрности и безопасности приложения и будут слепо верить AI-ассистенту. Однако, мой опыт работы с AI привел меня к выводу, что он хорош для изучения темы в которой вы разбираетесь меньше, чем в среднем, но как только вы приближаетесь к знанию темы вы видите трещины в логике AI повсюду.
"Выбирай, но осторожно, но выбирай, либо по 5 вчера большие, либо сегодня маленькие и по три.."(c)

Есть уже забавные челенджи наполненные скепсисом как написать игру с помощью Curor AI за 7 дней используя технику "вайб-кодинга".

В Ars Technica описали "ироничный поворот в развитии вайб-кодинга": AI-ассистент отказался сгенерировать код для программиста, ответив: "Я не могу создать код за вас, так как это означало бы выполнение вашей работы" и добавил: "Вы должны самостоятельно разработать логику." 🙂

https://www.youtube.com/watch?v=DqgKuLYUv00
👍3😁1🤩1
#liquidgen #janga #odin #fx #sim

Попался мне на глаза последний билд Liquidgen версии 0.3.2-alpha и решил убедиться воочию на заявленный реалтайм и возможности.

Liquidgen на данный момент доcтупен для архитектуры x86_64 Windows и Linux и разрабатывается на довольно экзотической смеси языков Odin и C++. Где большую часть занимает именно Odin. У языка Odin согласно статистике GitHub всего 125 пользователей против 1 миллиона у C++, про Python вообще молчу и это только зарегистрированные пользователи.

Язык ещё достаточно молодой и разрабатывать на нём довольно рискованное дело, но JangaFX разрабатывает на нём все свои текущие и будет разрабатывать новые продукты. Спойлер: разработчики думают о создании VegeGen, инструмент для создания растительности со своим блэкджеком и рендером.

Для тех, кто не знаком, Odin - это язык системного программирования общего назначения, который более консервативен в своем дизайне, чем другие новые языки программирования, такие как Rust, Zig и Carbon.
Идеология дизайна вокруг Odin заключается в том, чтобы обеспечить некоторые крайне необходимые улучшения качества работы по сравнению с лингва-франка системных языков: C, оставаясь при этом таким же простым, как C. Это делает его действительно привлекательным языком для тех, кто недоволен возросшей сложностью, которую любят поощрять другие системные языки.

Как сказал один из разработчиков JangaFX: "Personal choice/freedom".

И ещё одно важное наблюдение несмотря на современные тенденции разрабатывать используя новые графические API; Liquidgen, Embergen и другие, большую часть симуляции выполняют на GPU используя OpenGL, по крайней мере, пока. Возможно, со временем они перейдут на D3D для Windows, Metal для macOS и Vulkan для Linux, но видимо не скоро.
👍1
Media is too big
VIEW IN TELEGRAM
#liquidgen #janga #odin #fx #sim

Продолжение..

Вопреки задачи по созданию красивой, демонстрационной симуляции с водой, я буду просто густо поливать макароны и хотдог, горячим сырным соусом (да, я могу, а что вы мне сделаете?), двигать коллайдеры и крутить параметры чтобы понять достаточно ли 25 нод c параметрами, вьюпорта и таймлайна чтобы считаться простым и удобным редактором для создания такого.

У меня была 3070 Ti 8GB для тестов и редактор почти сразу забрал себе почти 7GB даже не начав симулить, возможно нужно железо получше, но в минимальные требования вписался.
В редакторе действительно мало нод, мало параметров, это вероятно не то к чему вы обычно привыкли, но крайне узнаваемый интерфейс и на освоение всей программы уйдёт не больше пары часов. Но не ждите, что на ранней альфе обойдётся без багов, двигать коллайдеры в реалтайме не получится, приводит к нестабильности.

Но судя по демонстрациям, артисты смогли выжать намного больше используя кастомные форсы, коллайдеры и анимированные параметры.
👍4
#vex #houdini #todayilearned #content

ТОП 10 эзотерических функций на VEX которыми вы скорей всего никогда не пользовались и вряд ли будете, но они есть и ждут своего часа:

string pluralize(string noun)

В английском языке существует множество нестандартных правил образования множественного числа существительных. Эта функция правильно создаст окончание множественного числа для входной строки. Используется только конец входной строки.

И часто ли вам приходилось заниматься подобным?

void sleep(int milliseconds)

Да, в вексе есть функция которая позволяет "уснуть" какому-то скоупу кода на определённое время. Отличный стимул показать, что работа выполняется медленно, а значит процесс "тяжёлый".

int file_stat(string filename, int &stat_data[], ...)

Из векса, внезапно, можно проверить состояние файла используя соответствующие атрибуты: .st_size. .st_sizemb, .st_mtime, isValid(), isFile(), isDir(), isRead(), isWrite(), isExecute()
// -Вместо Python? 
// -Да.
#include <file.h>

@Cd = {1,0,0};
stat s = file_stat("$HH/pic/Mandril.pic");
if (s->isValid()){
@Cd = {0,1,0};
}


int shl(int a, int bits) 
int shr(int a, int bits)
int shrz(int a, int bits)

Низкоуровневое задротство для работы с отдельными битами числа вместо операторов побитового сдвига <<,>>.
Область криптографии, хитрых алгоритмов, экономии байтов и времени цпу.

void print_once(string msg, ...)
Печать cообщения в stdout только один раз, даже в цикле.
// Only print "Hello world" one time
// Хватит засорять stdout
for (int i = 0; i < 100; ++i)
print_once("Hello world\n");


<type>[] slice(<type>s[], int start, int end)

Нарезает подстроку или подмассив строки или массива.
Функция выполняет эквивалентных код, что и синтаксис слайсов value[start:end:step]. Тогда зачем это нужно?

float pack_inttosafefloat(int i) 
int unpack_intfromsafefloat(float f)

Это нужно для случаев, когда вам нужно представить потенциально большое число int в виде float.
Звучит как задача с которой вы столкнётесь раз в десяток лет.
Целые числа в диапазоне abs(i) <= (2^24) = 16,777,216 будут представлены точно такими числами с плавающей запятой.
🔥4
Forwarded from Segment@tion fault
This media is not supported in your browser
VIEW IN TELEGRAM
Всегда мечтал так пройти Марио
🔥52