RSS блога
Подписка
Как мы с нейронкой рисовали 3D таракана в стиле стимпанк
Если вы сочтете эту статью бредом — то, наверняка, так оно и есть. Но в итоге партия выдать вам миску риса и жена-кошка сможете сами распечатать себе такую же штуку, которую мы спроектировали. Ну или что-то в ней поменять — это тоже можно.
Публикуется на правах бреда сивой кобылы, навеянного полетом сферического коня в вакууме в лунную ночь, с небольшими вкраплениями вранья сивого мерина.
Будет много красивых и не очень картинок с некоторым количеством кода, который, впрочем, спрятан под спойлером и смотреть его строго не обязательно.
Людям без чувства юмора к прочтению не рекомендуется.
Дело было вечером, делать было нечего.
Сижу, значит, чай попиваю, с нейронкой общаюсь.
— Киса! Я давно хотел вас спросить как художник художника: вы рисовать умеете?
— Да я самый лучший художник, сам посмотри, сейчас тебе намалюю.
— Красивое! А таракана в стиле стимпанк смогешь?
— А что, есть сомнения?
— Не, мне не такой нужен, а чтобы на робота-машину был похож.
— Да как два пальца об асфальт, выбирай.
— А вот этого можно сделать трехмерным, чтобы в CAD загрузить и вообще на принтере распечатать?
— Получи, распишись.
— Не, ты тут мухлюешь, однако. Не умеешь в 3D?
— Ну как тебе сказать… Вроде как теоретически и умею, но без гарантии результата. И тебе это дорого стоить будет.
— Ну ладно, господь с тобой, золотая рыбка. Но, ходят слухи, ты в программирование умеешь?
— Легко.
— Тогда напиши мне программку в OpenSCAD, которая нарисуем мне какое-нибудь насекомое в стимпанке.
— Муравей пойдет? Получи!
Нравится картинка? Поверили? А я вас бессовестно обманул. Проект я где-то в Интернетах стырил, рисовал его вполне себе человек в каком-то серьезном CADе. А я его только преобразовал в STL, который теоретически можно распечатать.
А нейронка выдала мне вот такое.
Хотя, судя по комментариям в коде, она честно пыталась. Но не смогла. А на крыльях вообще зависла и код остался незавершенным.
Ладно, попытка не засчитана, пробуем еще раз.
Еще хуже.
Значит, ее возможности сильно преувеличены. Будем ждать — года три назад о таких картинках, что сейчас можно генерировать, рукопопому художнику даже не мечталось.
Научат ее и в 3D, и в программирование. А что сейчас делать? Будем есть слона маленькими кусочками.
— Для начала, сгенерируй мне вытянутую по одной оси и приплюснутую по другой оси сферу.
Со второй попытки получилось, правда, только вытянутая. Всего два оператора в OpenSCAD, но
она таки справилась.
— А теперь расскажи, как рассчитать координаты, где расположить пупырышки-заклепки.
Вот тут она меня удивила — сходу выдала подпрограмму вычисления точек на поверхности удлиненной сферы. Не надо пытаться вспоминать тригонометрию, которую в школе учили то ли в 7-м, то ли в 8-м классе.
Но у нее получилось это только однажды. Код отдельно я не сохранил (код выше уже модифицирован ручками), в момент написания статьи хотел сгенерировать его снова. Видимо, в такие игры играют только один раз, и как я не модифицировал запрос, получить правильный алгоритм больше не получалось, в лучшем случае получалось что-то типа такого:
Занимательно, но бесполезно.
Все остальные элементы я ее честно спрашивал, но толку от ее программ не было никакого, приходилось все ручками писать.
В конце осталось только рот нарисовать. Нейронка выдала какой-то куб Малевича. Попробовал заказать вместо обычного рта «ужасный рот страшного таракана». Прежде, чем выдать код, она прокомментировала запрос — типа, не знаю, зачем это тебе надо и что это за новое извращение, но вот тебе код. Код, к сожалению, опять был бессмысленным.
Ну и хотел я еще таракану трубку в зубы засунуть.
Но пришла супруга, посмотрела на мое творение и резюмировала: курение — это вред, а трубку надо убрать (но при желании можно восстановить, я просто закомментировал ее в коде).
Ну, вот вроде что вышло:
Теперь печатаем, любуемся и ждем, когда нейросеть научится генерировать 3D модели.
Кто дочитал до сюда — тот молодец и может послушать песенку про таракана:
Все картинки в клипе сгенерированы нейросетью, и голос солиста подменен на противный то ли женский, то ли детский тоже с ее помощью.
А все тараканьи файлы, в том числе и исходники, можно взять здесь.
Потенциальным критикам — да, я в курсе. Мне уже сказали — чем бы дитё не тешилось, лишь бы водку не пило.
Публикуется на правах бреда сивой кобылы, навеянного полетом сферического коня в вакууме в лунную ночь, с небольшими вкраплениями вранья сивого мерина.
Будет много красивых и не очень картинок с некоторым количеством кода, который, впрочем, спрятан под спойлером и смотреть его строго не обязательно.
Людям без чувства юмора к прочтению не рекомендуется.
Дело было вечером, делать было нечего.
Сижу, значит, чай попиваю, с нейронкой общаюсь.
— Киса! Я давно хотел вас спросить как художник художника: вы рисовать умеете?
— Да я самый лучший художник, сам посмотри, сейчас тебе намалюю.
— Красивое! А таракана в стиле стимпанк смогешь?
— А что, есть сомнения?
— Не, мне не такой нужен, а чтобы на робота-машину был похож.
— Да как два пальца об асфальт, выбирай.
— А вот этого можно сделать трехмерным, чтобы в CAD загрузить и вообще на принтере распечатать?
— Получи, распишись.
— Не, ты тут мухлюешь, однако. Не умеешь в 3D?
— Ну как тебе сказать… Вроде как теоретически и умею, но без гарантии результата. И тебе это дорого стоить будет.
— Ну ладно, господь с тобой, золотая рыбка. Но, ходят слухи, ты в программирование умеешь?
— Легко.
— Тогда напиши мне программку в OpenSCAD, которая нарисуем мне какое-нибудь насекомое в стимпанке.
— Муравей пойдет? Получи!
Нравится картинка? Поверили? А я вас бессовестно обманул. Проект я где-то в Интернетах стырил, рисовал его вполне себе человек в каком-то серьезном CADе. А я его только преобразовал в STL, который теоретически можно распечатать.
А нейронка выдала мне вот такое.
Здесь спрятан код
// Программа для OpenSCAD, которая рисует жука в стиле стимпанк
// Основа жука - куб с закругленными углами
//beetle_cover();
beetle_head();
//beetle_legs();
module beetle_base() {
hull() {
translate([-5, -10, 0]) sphere(5);
translate([5, -10, 0]) sphere(5);
translate([-5, 10, 0]) sphere(5);
translate([5, 10, 0]) sphere(5);
}
}
// Ноги жука - цилиндры с шарнирами
module beetle_legs() {
for (i = [-1, 1]) {
for (j = [-1, 1]) {
// Передняя нога
translate([i*4, j*8, 0]) rotate([0, 0, i*j*30]) {
cylinder(h = 8, r = 0.5);
translate([0, 8, 0]) rotate([0, i*j*45, 0]) {
cylinder(h = 4, r = 0.5);
translate([0, 4, 0]) sphere(1); // Кончик ноги
}
}
// Средняя нога
translate([i*2, j*10, 0]) rotate([0, 0, i*j*15]) {
cylinder(h = 8, r = 0.5);
translate([0, 8, 0]) rotate([0, i*j*30, 0]) {
cylinder(h = 4, r = 0.5);
translate([0, 4, 0]) sphere(1); // Кончик ноги
}
}
// Задняя нога
translate([i*-2, j*10, 0]) rotate([0, 0, i*j*-15]) {
cylinder(h = 8, r = 0.5);
translate([0, 8, 0]) rotate([0, i*j*-30, 0]) {
cylinder(h = 4, r = 0.5);
translate([0, 4, 0]) sphere(1); // Кончик ноги
}
}
}
}
}
// Голова жука - полусфера с глазами и усами
module beetle_head() {
//difference()
{
// Полусфера
intersection() {
sphere(4);
cube(10);
}
// Глаза
for (i = [-1 ,1]) {
translate([i*2.5 ,2 ,3.5]) sphere(1.5);
}
// Усы
for (i = [-1 ,1]) {
for (j = [-1 ,1]) {
translate([i*3 ,j*2 ,-2]) rotate([90 ,i*j*-45 ,90]) cylinder(h =6 ,r =0.2);
}
}
// Рот
translate([0 ,-3 ,2.5]) cube([2 ,2 ,1]);
// Антенны
for (i = [-1 ,1]) {
translate([i*3 ,3 ,4.5]) rotate([-45 ,i*-45 ,90]) cylinder(h =6 ,r =0.2);
}
// Шляпа
translate([-2 ,3.5 ,6.5]) rotate([-45 ,45 ,90])
difference() {
cylinder(h =3 ,r1 =3 ,r2 =2);
cylinder(h =3.01 ,r1 =2.9 ,r2 =1.9);
}
// Монокль
translate([-2.5 ,2 ,4])
difference() {
cylinder(h =1 ,r =1.5);
cylinder(h =1.01 ,r =1.4);
}
// Цепочка монокля
translate([-3.5 ,2 ,4])
rotate([-90 ,-90 ,-90])
polyhedron(
points=[[6 ,-6 ,-6] ,[6 ,-6 ,-4] ,[6 ,-4 ,-6] ,[6 ,-4 ,-4] ,[4 ,-6 ,-6] ,[4 ,-6 ,-4] ,[4 ,-4 ,-6] ,[4 ,-4 ,-4]],
faces=[[7 ,3 ,1 ,5] ,[4 ,0 ,2 ,6] ,[6 ,2 ,3 ,7] ,[5 ,1 ,0 ,4] ,[3 ,2 ,0 ,1] ,[7 ,6 ,4 ,5]]
);
}
}
// Покрытие жука - металлические пластины с рисунком
module beetle_cover() {
difference() {
// Основная пластина
translate([0, 0, 5]) scale([1, 0.9, 0.1]) beetle_base();
// Отверстия для ног
for (i = [-1, 1]) {
for (j = [-1, 1]) {
translate([i*4, j*8, 5]) cylinder(h = 0.2, r = 0.6);
translate([i*2, j*10, 5]) cylinder(h = 0.2, r = 0.6);
translate([i*-2, j*10, 5]) cylinder(h = 0.2, r = 0.6);
}
}
// Отверстие для головы
translate([0, -10, 5]) cylinder(h = 0.2, r = 4);
// Рисунок на пластине
translate([-3, -3, 5.1]) text("STEAMPUNK", size = 3);
translate([-3, -6, 5.1]) text("BEETLE", size = 3);
translate([-3, -9, 5.1]) text("2023", size = 3);
// Боковые пластины
for (i = [-1, 1]) {
translate([i*10, 0, 5]) rotate([90, i*-90, i*-90])
difference() {
scale([1, 0.9, 0.1]) beetle_base();
// Отверстия для ног
for (j = [-1, 1]) {
translate([j*8, i*4, 0]) cylinder(h = 0.2, r = 0.6);
translate([j*10, i*2, 0]) cylinder(h = 0.2, r = 0.6);
translate([j*10, i*-2, 0]) cylinder(h = 0.2, r = 0.6);
}
// Отверстие для головы
translate([-10, i*0, 0]) cylinder(h = 0.2, r = 4);
}
}
// Задняя пластина
translate([0, 20, 5]) rotate([90, -180, -180])
difference() {
scale([1, 0.9, 0.1]) beetle_base();
// Отверстия для ног
for (i = [-1, 1]) {
for (j = [-1, 1]) {
translate([i*4, j*8, -5]) cylinder(h = -0.2, r = -0.6);
translate([i*2, j*10,-5]) cylinder(h = -0.2,r=-0.6);
translate([i*-2,j*10,-5]) cylinder(h=-0.2,r=-0.6);
}
}
}
// Передняя пластина
translate([0 ,-20 ,5])
difference() {
scale([1 ,0.9 ,0.1])
beetle_base();
// Отверстие для головы
translate([0 ,10 ,-5])
cylinder(h=-0.2,r=-4);
}
}
}
// Крылья жука - тонкие пластины с узором
Хотя, судя по комментариям в коде, она честно пыталась. Но не смогла. А на крыльях вообще зависла и код остался незавершенным.
Ладно, попытка не засчитана, пробуем еще раз.
Еще хуже.
Значит, ее возможности сильно преувеличены. Будем ждать — года три назад о таких картинках, что сейчас можно генерировать, рукопопому художнику даже не мечталось.
Научат ее и в 3D, и в программирование. А что сейчас делать? Будем есть слона маленькими кусочками.
— Для начала, сгенерируй мне вытянутую по одной оси и приплюснутую по другой оси сферу.
Со второй попытки получилось, правда, только вытянутая. Всего два оператора в OpenSCAD, но
она таки справилась.
— А теперь расскажи, как рассчитать координаты, где расположить пупырышки-заклепки.
Вот тут она меня удивила — сходу выдала подпрограмму вычисления точек на поверхности удлиненной сферы. Не надо пытаться вспоминать тригонометрию, которую в школе учили то ли в 7-м, то ли в 8-м классе.
Дополнительная информация
r = 80; // радиус сферы
l = 100; // высота сферы
h = 200; // высота сферы
xn = 48; // заклепки
yn = 20;
scale([l/r, 1, h/r]) sphere(r, $fn = 48);
for(i=[2 : xn/2-2])
{
for(j=[0 : yn-1])
{
{
u = 360*i/xn;
v = 360*j/yn;
x = r * sin(u) * cos(v);
y = (l-1) * sin(u) * sin(v);
z = h * cos(u);
translate([y,x,z]) sphere(d=5,$fn = 12);
}
}
}
Но у нее получилось это только однажды. Код отдельно я не сохранил (код выше уже модифицирован ручками), в момент написания статьи хотел сгенерировать его снова. Видимо, в такие игры играют только один раз, и как я не модифицировал запрос, получить правильный алгоритм больше не получалось, в лучшем случае получалось что-то типа такого:
Занимательно, но бесполезно.
Все остальные элементы я ее честно спрашивал, но толку от ее программ не было никакого, приходилось все ручками писать.
В конце осталось только рот нарисовать. Нейронка выдала какой-то куб Малевича. Попробовал заказать вместо обычного рта «ужасный рот страшного таракана». Прежде, чем выдать код, она прокомментировала запрос — типа, не знаю, зачем это тебе надо и что это за новое извращение, но вот тебе код. Код, к сожалению, опять был бессмысленным.
Ну и хотел я еще таракану трубку в зубы засунуть.
Но пришла супруга, посмотрела на мое творение и резюмировала: курение — это вред, а трубку надо убрать (но при желании можно восстановить, я просто закомментировал ее в коде).
Ну, вот вроде что вышло:
Теперь печатаем, любуемся и ждем, когда нейросеть научится генерировать 3D модели.
Кто дочитал до сюда — тот молодец и может послушать песенку про таракана:
Все картинки в клипе сгенерированы нейросетью, и голос солиста подменен на противный то ли женский, то ли детский тоже с ее помощью.
А все тараканьи файлы, в том числе и исходники, можно взять здесь.
Потенциальным критикам — да, я в курсе. Мне уже сказали — чем бы дитё не тешилось, лишь бы водку не пило.
Самые обсуждаемые обзоры
+76 |
3911
147
|
+57 |
4064
72
|
Что это было?
А тут будем читать обзоры качества различных производителей и примеры модификаций.
А распечатанный таракан снизу это плюс.
Хотя, бают, что уже можно по картинке сделать 3D модель. А уж ее как то пробовать преобразовать в принтерную.
критикам сверху ответим — не все про ушную затычку из китая читать и очередную 100500 кривую батарейку.
Ладно подумал я, может глюк и созвонившись с товарищем, натравили на алгоритм купленный и новую версию нейросети и тоже результат отрицательный.
Вот я думаю, где зарыта собака? То есть если что то новое ей подсовывать, у нее хорошо получается, потом это же, но уже спустя время и получается ерунда, почему?
Причем с готовыми кусками программного кода справляется отлично.
Было у отца три сына —
Старший умный был детина…
Просто мне комментарии достали и я его сам убрал.
И кто бы рассказывал, что тут только для покупок — у Вас же тоже статьи часто не в тему.
Опираетесь на собственное имхо и пытаетесь навязать мнение другим? Ну, ну.
Допустим меня таращит с парилок и вейпов, я понимаю как минимум глупо заходить в подобные темы и что-то писать об этом. И просто прохожу мимо.
Предложите убрать раздел «Сделано руками» (тут же печать в обзоре). Или напишите на худой конец в спортлото.
P.S. Если ссылку на смолу добавить в статью, вам сразу легче станет?
Тут дело такое, умный человек улыбнется и у него поднимется настроение. Кто-то извлечет пользу. Ну а кто-то…
У меня врожденный комплекс вахтёра
Поднялось, улыбнулся, но статья не соответствует тематике сайта. Дальше пойдут котики и мемасики. Не хочу потерять свои любимый сайт.
Ну как бы все ясно.
Ну с той же вероятностью я смогу предположить, что у Вас на лбу что-то лишнее вырастет. В численном изложении вероятности развития обоих ситуаций примерно равны.
Ну и ещё, вы наверное адепт теории нестабильности Пригожина. Которая предполагает наличие странных аттракторов, в рамках которых движение системы, изначально детерминированное, в конце концов запутывается до такой степени, что превращается в абсолютный хаос.
Это ваше личное мнение, которое не несёт конструктивной информации и не интересно сообществу. По существу (без стенаний, кликушества и соплей), можете указать где в правилах сайтах запрещено публиковать подобные обзоры? Если вы как-то субъективно интерпретировали направленность ресурса, то это исключительно ваши проблемы.
Как гласит арабская поговорка:
«Собака лает, караван идёт»
Поэтому решение такое, этот обзор удалять не будем, но попросим авторов все же придерживаться направления сайта.
Муська очень интересный ресурс в плане аудитории, здесь ещё не заполонили пространство всёпропальщики и «человек недовольный» (современная итерация «человека разумного»). Знания как некая ценность в виртуальном мире, да и в принципе, необходимы. Много не бывает.
Может наступило время роста, может это та самая точка бифуркации?
Слежу за этой темой, как профильной (я занимаюсь 3Д печатью).
Но я очень жду того момента, когда можно будет вот так закоментить и получить некий результат пригодный для печати. Это будет прорыв в сфере 3Д моделирования и творчества.
Из всего что сейчас предлагают, есть и платные и бесплатные варианты. Но пока всё что может нейросеть делать более менее пригодное для печати, это как ни смешно, стулья. Да, модели стульев и табуреток. И всё.
С фотками попроще. Ждём, когда кто-то скормит thingverse и понесётся.
Я как-то попытался от ии получить музыку — облом полный.
(по доброму! Пост — огонь!)