Товары из Китая

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк


Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Если вы сочтете эту статью бредом — то, наверняка, так оно и есть. Но в итоге партия выдать вам миску риса и жена-кошка сможете сами распечатать себе такую же штуку, которую мы спроектировали. Ну или что-то в ней поменять — это тоже можно.

Публикуется на правах бреда сивой кобылы, навеянного полетом сферического коня в вакууме в лунную ночь, с небольшими вкраплениями вранья сивого мерина.

Будет много красивых и не очень картинок с некоторым количеством кода, который, впрочем, спрятан под спойлером и смотреть его строго не обязательно.

Людям без чувства юмора к прочтению не рекомендуется.

Дело было вечером, делать было нечего.

Сижу, значит, чай попиваю, с нейронкой общаюсь.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

— Киса! Я давно хотел вас спросить как художник художника: вы рисовать умеете?

— Да я самый лучший художник, сам посмотри, сейчас тебе намалюю.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

— Красивое! А таракана в стиле стимпанк смогешь?

— А что, есть сомнения?

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк — Не, мне не такой нужен, а чтобы на робота-машину был похож.

— Да как два пальца об асфальт, выбирай.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

— А вот этого можно сделать трехмерным, чтобы в CAD загрузить и вообще на принтере распечатать?

— Получи, распишись.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

— Не, ты тут мухлюешь, однако. Не умеешь в 3D?

— Ну как тебе сказать… Вроде как теоретически и умею, но без гарантии результата. И тебе это дорого стоить будет.

— Ну ладно, господь с тобой, золотая рыбка. Но, ходят слухи, ты в программирование умеешь?

— Легко.

— Тогда напиши мне программку в OpenSCAD, которая нарисуем мне какое-нибудь насекомое в стимпанке.

— Муравей пойдет? Получи!

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Нравится картинка? Поверили? А я вас бессовестно обманул. Проект я где-то в Интернетах стырил, рисовал его вполне себе человек в каком-то серьезном CADе. А я его только преобразовал в STL, который теоретически можно распечатать.

А нейронка выдала мне вот такое.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Здесь спрятан код
// Программа для 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 таракана в стиле стимпанк

Еще хуже.

Значит, ее возможности сильно преувеличены. Будем ждать — года три назад о таких картинках, что сейчас можно генерировать, рукопопому художнику даже не мечталось.

Научат ее и в 3D, и в программирование. А что сейчас делать? Будем есть слона маленькими кусочками.

— Для начала, сгенерируй мне вытянутую по одной оси и приплюснутую по другой оси сферу.

Со второй попытки получилось, правда, только вытянутая. Всего два оператора в OpenSCAD, но

она таки справилась.

— А теперь расскажи, как рассчитать координаты, где расположить пупырышки-заклепки.

Вот тут она меня удивила — сходу выдала подпрограмму вычисления точек на поверхности удлиненной сферы. Не надо пытаться вспоминать тригонометрию, которую в школе учили то ли в 7-м, то ли в 8-м классе.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Дополнительная информация
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 таракана в стиле стимпанк

Занимательно, но бесполезно.

Все остальные элементы я ее честно спрашивал, но толку от ее программ не было никакого, приходилось все ручками писать.

В конце осталось только рот нарисовать. Нейронка выдала какой-то куб Малевича. Попробовал заказать вместо обычного рта «ужасный рот страшного таракана». Прежде, чем выдать код, она прокомментировала запрос — типа, не знаю, зачем это тебе надо и что это за новое извращение, но вот тебе код. Код, к сожалению, опять был бессмысленным.

Ну и хотел я еще таракану трубку в зубы засунуть.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Но пришла супруга, посмотрела на мое творение и резюмировала: курение — это вред, а трубку надо убрать (но при желании можно восстановить, я просто закомментировал ее в коде).

Ну, вот вроде что вышло:

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Теперь печатаем, любуемся и ждем, когда нейросеть научится генерировать 3D модели.

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Как мы с нейронкой рисовали 3D таракана в стиле стимпанк

Кто дочитал до сюда — тот молодец и может послушать песенку про таракана:

Все картинки в клипе сгенерированы нейросетью, и голос солиста подменен на противный то ли женский, то ли детский тоже с ее помощью.

А все тараканьи файлы, в том числе и исходники, можно взять здесь.

Потенциальным критикам — да, я в курсе. Мне уже сказали — чем бы дитё не тешилось, лишь бы водку не пило.


СМОТРИ ТАКЖЕ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *