На CBB – Telegram
На CBB
109 subscribers
98 photos
70 videos
5 files
181 links
Блог о развитии компьютерной графики.
Субъективные заметки, наблюдения, исследования.
Download Telegram
#aoc #day01 #challenge #contest #vex

▄▄▄ ▒█████ ▄████▄
▒████▄ ▒██▒ ██▒▒██▀ ▀█
▒██ ▀█▄ ▒██░ ██▒▒▓█ ▄
░██▄▄▄▄██ ▒██ ██░▒▓▓▄ ▄██▒
▓█ ▓██▒░ ████▓▒░▒ ▓███▀ ░
▒▒ ▓▒█░░ ▒░▒░▒░ ░ ░▒ ▒ ░
▒ ▒▒ ░ ░ ▒ ▒░ ░ ▒
░ ▒ ░ ░ ░ ▒ ░
░ ░ ░ ░ ░ ░

Декабрь начался, а значит время попрактиковаться в решении паззлов на AoC ⚡️. Никогда не участвовал в них на VEX, но это может быть довольно забавный и интересный опыт учитывая, что в VEX у нас ограниченный набор структур данных и готовых алгоритмов.
Первый день довольно простой должен быть и не сложный на самом деле, но на всякий решение кинул на гист если будет кому интересно и захочет сравнить со своим.

GitHub Gist:
https://gist.github.com/alexwheezy/690f31912e752ca1da89f38b7d8bb861
👍1😁1
#aoc #day02 #challenge #contest #vex

▄▄▄ ▒█████ ▄████▄
▒████▄ ▒██▒ ██▒▒██▀ ▀█
▒██ ▀█▄ ▒██░ ██▒▒▓█ ▄
░██▄▄▄▄██ ▒██ ██░▒▓▓▄ ▄██▒
▓█ ▓██▒░ ████▓▒░▒ ▓███▀ ░
▒▒ ▓▒█░░ ▒░▒░▒░ ░ ░▒ ▒ ░
▒ ▒▒ ░ ░ ▒ ▒░ ░ ▒
░ ▒ ░ ░ ░ ▒ ░
░ ░ ░ ░ ░ ░


Второй день зашёл уже с говнолина 🙂 Однако самая полезная часть этого дня в этом контесте функция, итератор window которая пишется легко и бывает частенько нужна когда требует плотно поработать с парами соседних элементов в буфере. Она возвращает слайс со "скользящим окном" из буфера. "Скользящее окно" имеет длину size и на каждой итерации перемещается вперед на величину advance. Возможно будет кому-то она будет полезна, адаптировать её не только под строки не сложно, перегрузить по параметру функции можно на int[].

void window(string input; int size, advance){
if(size < 1 || advance < 1){
error("Assert, size or advance must be greater zero");
return;
}

if(len(input) < size){
// Maybe return the whole string?
// Or something else
return;
}

int l = 0;
int r = len(input);
while(l < r){
string slice = slice(input, l, l + size);
// something code
if(r - l <= size) break;
l += advance;
}
}

// Tests
// Size
// window("abcdefg", 1, 1); // a, b, c, d, e, f, g
// window("abcdefg", 2, 1); // ab, bc, cd, de, ef, fg
// window("abcdefg", 3, 1); // abc, bcd, cde, def, efg
// window("abcdefg", 4, 1); // abcd bcde cdef defg
// window("abcdefg", 5, 1); // abcde bcdef cdefg
// window("abcdefg", 6, 1); // abcdef bcdefg

// Advance
// window("abcdefg", 2, 3); // ab de g
// window("abcdefg", 3, 3); // abc, def, g
// window("abcdefg", 1, 2); // a, c, e, g
// window("abcdefg", 1, 3); // a, d, g


GitHub Gist:
https://gist.github.com/alexwheezy/c8cd4af3bbd86fcd20a5fa520739d770
#3december #meme #houdini

С праздником!

Да, в Houdini на данный момент 10 отдельных маленьких и не очень ЯП на которых можно что-то программировать, некоторые мёртвые или почти мёртвые, Hnoscript Lang и Hnoscript Expression имеют разный синтаксис, многие не считают Hnoscript Expression как таковым языком, а больше языком выражений в духе $FF > 10, однако у него тоже есть control flow: {float out = 0; for (i = 0; i < 10; i++) {out += i;} return out;}, место есть и для джаваскрипта, APEX Script похож на Python, но со статической, строгой типизацией, но вообще учитывая любовь сайдам к С-подобным языкам он не последний..или последний(?)

Вот и думайте! 🙂
🎉32
#houdini #python #qt #beta

Да, так получилось, что SideFX из-за более короткого цикла разработки в 20.5 (в чём они сами признались, а иначе бы 20.5 пришлось бы двигать намного дальше от релиза) не успели перейти на следующей стандарт библиотеки PyQt6 вместе с VFX Reference Platform.
Поэтому в Houdini 20.5 мы видим достаточно много ошибок в Python Panels и других инструментах.

Одна из проблем решалась с помощью отключения песочницы QTWEBENGINE_CHROMIUM_FLAGS='--no-sandbox' для хрома, но на свой страх и риск и вот теперь они анонсировали новую бету с PyQt6 в которой будут решать все потенциальные проблемы.
Однако, я всё равно не понял почему они решили всех предупредить об этом вместо того чтобы тихо допилить всё к H21 когда всех и так злит, что H20.5 оказалась намного менее стабильная чем 20.0 и 19.5, а тут ещё и заявления, что может всё равно что-то не работать 🤡

Тестирование продукта становится всё более открытым 🙂
👍2👌2😁1😢1🤡1
This media is not supported in your browser
VIEW IN TELEGRAM
#houdini #meme #python #noscripting

- Хорошо, я подниму тебе зарплату вдвое, но только если в Network Editor когда-нибудь пойдёт управляемый снег..
- Ни слова больше!
😁10🔥2💯1
Media is too big
VIEW IN TELEGRAM
#houdini #help #patching #estereggs

Начиная с H20.5 сломалась загрузка примеров через внешний браузер устанавливаемый переменной HOUDINI_EXTERNAL_HELP_BROWSER, наверняка с этим кто-то так же сталкивался.

Но раньше ведь это работало...

Исследуем проблему. При нажатии на кнопку Load из документации мы посылаем на веб-сервер запрос PUT https:/127.0.0.1:xxxx/_load_example к нашему эндпоинту _load_example, однако он стабильно возвращает 404 Not Found.
Дело в том, что согласно стандарту HTML единственные допустимые значения для атрибута method - get и post, соответствующие HTTP-методам GET и POST, поэтому PUT не будет работать с атрибутом метода HTML.

Не будем ждать пока они доберутся до этого тикета и сами "пропатчим" методы запроса в роутере и загрузчике и надо изменить лишь метод запроса на POST и всё!

p.s: в конце видео есть пасхалка, пока разбирался с роутингом, увидел, что там есть эндпоинт (allicons) ведущий на все иконки в H. Кому не хватало иконок для своих инструментов в noscript? 🙂
🎉4🙏1
#gaffer #katana #usd #opensource #foundry

Хотя проект Gaffer и опенсорсный тем не менее к своим пользователям разработчики активно прислушиваются и в последнем отчёте Gaffer User Group - December 2024 показали много обновлений по части UI/UX, стало местами намного удобней и практичней.

Новое из отчёта:
- Gaffer RenderMan, да, потихоньку начали интеграцию ещё одного рендера для своего приложения помимо: 3Delight, Arnold, Cycles, работы предстоит ещё много, однако какие-то базовые вещи уже сделаны.
- Gaffer ML. Ещё одна современная гонка в технологиях это поддержка ML (Machine Learning) операторов для работы. Сделали небольшие примеры на ONNX модели.

Какой у этого может быть use case? В отчёте они показывают как с помощью операторов можно в исходном изображении на примере шота из фильма Interstellar плашки по глубине расставить для композа в автоматическом режиме.
А так же большое количество манипуляций для фильтрации изображений, стилизации и т.д.

Так же вчера релизнулась Katana 8.0, теперь она поставляется с полной поддержкой - к USD и обратно - внутри приложения.
Теперь артисты могут легко конвертировать данные Katana в родные данные USD с помощью новой ноды KatanaToUsd.
Это означает, что артисты могут использовать инструменты которые они любят в Katana и применять их к данным в USD. Без необходимости переписывать инструменты конкретно для USD.
Вообще любопытно конечно насколько быстро происходит конвертация данных туда и обратно и конечно каким функционалом теперь обладает Katana для работы с USD.
🔥1
#cg #meme

Базовые механики любого чата. Literally.
😁21👍1💯1
#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