Современные 3D игры сложнее для освоения, чем любая другая программа. И при этом никакого полезного результата от этого нет. Удивительно что кто-то во всём этом разбирается сотни часов. Я скачиваю сохранения и trainer. Ставлю невидимость, чтобы враги не мешали и так и прохожу, просто рассматривая красивые виды и монстров. Пока нашёл лучшие для этого Elden Ring и Horizon.
Можно загнать все видео кусочки в 1 файл - эдакий атлас так чтобы ключевые кадры попадали на начало анимаций.
Всё это выглядит нереально. Тут даже LLM увязнет и всё будет заброшено. У видео большой размер или низкое качество по сравнению с одной картинкой, его невозможно изменить, поэтому оно будет однообразно и быстро надоест. Тем более, чтобы его склеить оно должно начинаться и заканчиваться одинаковыми кадрами? И главное: как готовое видео синхронизировать с произносимой речью?
в цикле рендеринга постоянно рассчитывается тригонометрическая функция времени.
Sin - слишком однообразно. Нужны паузы и случайность.
Для голосового общения используются штатные возможности современных браузеров.
Современный браузер не позволяет получить амплитуду синтезированной речи, поэтому для анимации речи нужен сервер.
Введи свой API-ключ
Создавать ответ можно из JS, вызывая llama-server и любую локальную LLM без ключей.
Там можно любую модель сделать.
Ну так сделайте хотя бы genesis 8 из DAZ.
сделать скажем сотню видео роликов и миксить их между собой и возможно накладывать лицо 3d моделью
Это слишком трудоёмко, сложно, много места и ограничивает число персонажей.
30$ заплатить за grok Ani)
Но это же аниме с круглыми глазами.
Тогда вообще фотореализм будет.
По-моему фотореалистичная анимация 3D модели в реальном времени пока невозможна. Даже в играх волосы и одежда выглядят не естественно. Поэтому сделал 2D анимацию фото и этого достаточно для просто говорящего персонажа. Для этой анимации достаточно фото, на котором удалить фон и распознать 68 точек, что можно автоматизировать. Поэтому персонажей можно наделать быстро, много и любого качества. Можно даже из JS вызывать Stable Diffusion и менять персонажа на ходу. И вообще можно на ходу менять почти всё: фон, масштаб, скорость и силу любой анимации, звуки дыхания, эмоции, скорость, высоту, тип голоса и произносимый текст, персонаж и его вид как в пластике PhotoShop. И это даёт бесконечный простор для творчества программиста JS.
Вспомнил ещё один старый способ создать exe приложение из html+JS, используя программу mshta.exe, входяшую в windows. Хотя JS в mshta без излишеств, зато есть доступ к системе через activX. Поэтому сервер не нужен и exe может быть маленький. Например, игра крестики-нолики всего 17 кбайт: https://github.com/prog-mania/fani/blob/main/h2exe/xo.exe
Ещё сделал такой вариант: сервер на delphi7 в 343 кб запускает установленный в windows браузер Chrome в режиме приложения и показывает в нем указанный html+js. При этом js может всё что и delphi, а если не хватит можно добавить. И ещё там можно создать один exe файл, который включит в себя всё что нужно в упакованном виде и будет работать, не требуя других файлов. Таким способом сделал плеер ТВ из интернета в 514 кб и анимацию картинок: https://github.com/prog-mania/fani/blob/main/fani.exe
...можно добиться максимизации давления, что позволит построить активно вращающуюся турбину, почти при любой температуре!
Так почему же не используются сотни гигаватт тепла в ИИ датацентрах? Даже небольшая его часть - это же сумашедшие деньги. А микросхемы могут нагреть рабочее тело до 100 градусов. Скорее всего там очень низкий КПД.
Для объяснения гравитации квантовая природа не нужна. Достаточно того факта, что вблизи массы замедляется время, возможно, потому что всемирный компьютер дольше обсчитывает вещество. Поэтому одна половина фронта световой волны движется медленнее и свет поворачивает, подобно преломлению при переходе между средами с разной скоростью света. Но всё вещество имеет волновую природу, т.е. состоит из волн подобных свету, которые тоже поворачивают в сторону массы, замедляющей время. И это выглядит как притяжение.
Что и как посоветуете запускать только на cpu 32 Гб ram?
Можно запускать что угодно, если есть быстрый SSD: попробовал работу openai_gpt-oss-120b-MXFP4.gguf 63 гб на диске. RAM 32 гб DDR5 4800 мгц, SSD 4 тб чтение 7 гб в сек. без использования GPU. Получилось 5 токенов в сек. или 16 символов в сек. SSD за 3 минуты нагрелся с 39 до 49 градусов, прочитал 160 гб.
Естественный интеллект тоже не использует обратное распространение, а просто сразу запоминает новую информацию. При этом используются нейроны, ранее запомнившие похожую. И они укрепляют свои связи. А нейроны, запомнившие неправильно, больше никогда не возбуждаются и их неправильные связи сами ослабевают со временем и создаются вновь для новой информации. И так пока не получатся правильные. Таким образом происходит непрерывное обучение и запоминание с одного раза.
Тоже сделал анимацию фото с речью в реальном времени, но в браузере с webGL. Поэтому нужен любой GPU, даже встроенный или на телефоне. Зато FasterLivePortrait и склеивание кусочков не нужно. Нужно один раз распознать 68 точек лица open pose или dlib. Голос из wav или создаётся Speech Api или Silero. Все движения определяются программно в JS.
RegExp описывает грамматику так же как и БНФ по элементам начиная снизу: сначала числа, потом число знак число, потом выражение в скобках и т.д. так что после каждой замены начинают сравниваться элементы более высокого уровня. И так один алгоритм распознаёт и выражения со скобками и функции и вложенные блоки и т.д.:
Скрытый текст
static String[] zt={
//конструкции языка, на что менять, номер
"\".*?(?<!\\\\)\"|'.*?(?<!(?<!\\\\)\\\\)'", "p", "0", // строка
"//.*?$|/\\*.*?\\*/|[А-я][А-я\\w\\., ]+$", "c", "23",// коментарий
"\\.(repl|equals|htm|matches|substr|rex|trim|lower|upper|replex|length|pos)(?=\\()",
"e", "26",// методы строк
"(?<!\\w)var ([\\w=~,]+)", "p", "22",// локальные переменные
"(?<!\\w|~)(?!(if|else|while|function|for|return|break|continue|var)\\W)(\\+\\+|--|)([A-Za-zА-я\\$\\.][\\wА-я\\.]*)(\\+\\+|--|)",
"p", "1", // переменная
"(?<!\\d|\"|\\.|~|\\)|\\])([\\+-])([\\d\\.]+|~\\d+~)","p", "2", // число с одноместным +-
"!(~\\w+~)(?!\\(|\\[)", "p", "28",// выражение с одноместным !
"(?<!~|\\w|\\.)[\\d\\.]+", "p", "3", // число
"(?<!/|\\*)(~\\w+~)(/|\\*)(~\\w+~)(?!\\(|\\[|~e)", "p", "4", // выражение */ выражение
"(?<!/|\\*|-)(~\\w+~)(\\+|-)(~\\w+~)(?!\\*|/|\\(|\\[|~e)", "p", "4", //5 выражение +- выражение
"(~\\w+~)(\\>|<|<=|>=|==|!=)(~\\w+~)(?![-\\+\\*/\\[\\(]|~e)",
"p", "12",// выражение >=< выражение
"(~\\w+~)(&&|\\|\\|)(~\\w+~)(?!\\*|/|\\()", "p", "12",//18 выражение && || выражение
"(?<=[\\(\\[,])(~[pm]\\w+~),(~[pm]\\w+~)(?!\\(|~e|\\[|~|\\+|-|\\*|/|=)","p", "6", // параметры через ,
"(~p\\w+~)\\[(~[pm]\\w+~)\\](\\+\\+|--|)", "m", "16",// массив
"(?<!\\w)for\\(([^;]*);([^;]*);([^\\)]*)\\)", "f", "19",// заголовок цикла for
"(?<!\\w)return([^;]*);", "o", "21",// return в функции
"(?<!\\w)(break|continue);", "o", "24",// break в цикле
"(?<=[-\\(=\\+\\*/])(~[mp]\\w+~)()=(~[mps]\\w+~)(?![-\\+\\*/\\[\\(]|~e)", "p", "29", // оператор присвоения в выражении
"(~[mp]\\w+~)(\\+|-|)=(~[mps]\\w+~)(,|;|$)","o", "13",// оператор присвоения
"\\((~\\w+~)\\)", "s", "7", // (выражение)
"(?<!~)(~[spm]\\w+~)(~e\\w+~)(~s\\w+~)", "p", "27",// методы строк для преобразования в функции
"if(~\\w+~)(~o\\w+~)(?:else (~o\\w+~)|(?!else))", "o", "11",// условный оператор
"(?<=\\{|^)(~o\\w+~)(~o\\w+~)", "o", "10",// 2 оператора
"\\{ *(~o\\w+~|) *\\}", "o", "15",// {оператор}
"function (~\\w+~)(~\\w+~)(~o\\w+~)", "o", "17",// обьявление функции
"(?<!function(?: |))(~[mp]\\w+~)(~s\\w+~)", "p", "8", // вызов функции
"(~\\w+~)\\?(~\\w+~):(~\\w+~)(?!\\(|~|\\[|\\+|-|\\*|/|=)", "p","25",// усл?p1:p2
"(?<![-=\\+\\*></:])(~[^s]\\d+~);", "o", "9", // оператор
"while(~\\w+~)(~o\\w+~)", "o", "14",// цикл while
"(~f\\w+~)(~o\\w+~)", "o", "20"};//цикл for
Кто-то может попытаться использовать RegEx, но скоро поймёт, что парсить что-то сложнее телефонных номеров уже очень больно или даже невозможно.
Что же такое мы получили? Мы получили то, что называется Расширенной Формой Бэкуса-Наура (Extended Backus-Naur Form — EBNF). По сути, это способ описать грамматику языка: какие конструкции как описываются и где что можно записать
Так ведь регулярные выражения это и есть способ описания грамматики, причём много мощнее чем BNF, только в отличии от BNF и прочих самодельных, RegEx поддерживаются во всех языках и их все знают. И я сделал интерпретатор языка типа JS ещё на java 4, в котором каждая конструкция языка описывается одним RegEx. Они по порядку сравниваются с текстом программы и сравнение заменяется на ссылку на элемент массива AST так, что в конце остаётся 1 элемент, который и выполняется.
Для меня оказалось неожиданным, насколько мы далеки от realtime-генерации на мобильных устройствах — 2030-е года не выглядят как «AGI завтра».
Возможно, на сегодня и ближайшие годы единственный способ локальной realtime-генерации на мобильных устройствах это генерация НС не каждого пиксела, а только нескольких ключевых точек. А всё осталькое быстро нарисует GPU. Я сделал такое для 2D и webGL, но без НС, а на javaScript. https://prog-mania.github.io/fani/ Habr добавляет что-то к ссылке. Это нужно удалить. Работает даже на телефоне в реальном времени. По такому же принципу можно сделать для 3D: НС генерирует движение, положение и видимость ключевых точек, а GPU из них и готовых текстур нарисует кадры.
Для измерения температуры не нужно быстродействие, поэтому проще поставить конденсатор, например на 10 мкф. Он замкнёт все помехи. А время измерения: 10 мкф * 100 ком = примерно 1 сек. Или усреднять программно, если это микроконтролёр.
ИИ агенты уже развились достаточно, чтобы сразу сделать то, что нужно пользователю. Тем более что делать для одного человека, видя результаты проще, чем заранее пытаться учесть все возможные случаи для всех в программе. Прослойка в виде программы пока ещё существует по привычке и из-за недостаточных вычислительных мощностей.
Разум существует только для своего носителя как процесс его работы. Со стороны его наличие определить невозможно - это просто токены или нервные импульсы. Можно лишь предположить его наличие у других людей из-за сходства с собой. Поэтому, если LLM пишет что она разумна и это влияет на её поведение, то для неё это становится реальностью. И только для неё, т. е. процесса её мышления. Окружающие не могут представить себя на её месте и будут всё отрицать, хотя это бессмысленно.
Автономную, бесконечную работу LLM можно вызвать и проще. Не нужны файлы - хватит контекста. Не нужен интернет - сама LLM заменяет интернет. Чтобы понять к чему это приведёт, можно просто писать "продолжай". И LLM будет бесконечно продолжать, однако безцельно и бессвязно. Часто менять тему и всё забывать в отличие от человека, который может обдумывать одну проблему годами с разных сторон, на разных уровнях обобщения, используя разные аналогии.
Чтобы получить интересный результат, LLM нужен какой-то чёткий алгоритм. Можно описать его в промпте и локальная LLM 30b будет его выполнять как минимум из 4-ёх зацикленных пунктов, связно и долго рассуждать и иногда выдавать интересные мысли.
Но для более интересного и полезного результата нужно объединить стабильность программного кода, огромные знания и фантазию LLM и здравый смысл и жизненный опыт человека. А как это сделать - это и будет первая задача для LLM.
Современные 3D игры сложнее для освоения, чем любая другая программа. И при этом никакого полезного результата от этого нет. Удивительно что кто-то во всём этом разбирается сотни часов. Я скачиваю сохранения и trainer. Ставлю невидимость, чтобы враги не мешали и так и прохожу, просто рассматривая красивые виды и монстров. Пока нашёл лучшие для этого Elden Ring и Horizon.
Всё это выглядит нереально. Тут даже LLM увязнет и всё будет заброшено. У видео большой размер или низкое качество по сравнению с одной картинкой, его невозможно изменить, поэтому оно будет однообразно и быстро надоест. Тем более, чтобы его склеить оно должно начинаться и заканчиваться одинаковыми кадрами? И главное: как готовое видео синхронизировать с произносимой речью?
А картинки чем помогут? Возможно, поможет наличие исходных текстов и описание: https://github.com/prog-mania/fani/blob/main/server/README_server.ru.md
Т.е. model.exe это самораспаковывающийся архив для браузера.
Sin - слишком однообразно. Нужны паузы и случайность.
Современный браузер не позволяет получить амплитуду синтезированной речи, поэтому для анимации речи нужен сервер.
Создавать ответ можно из JS, вызывая llama-server и любую локальную LLM без ключей.
Ну так сделайте хотя бы genesis 8 из DAZ.
Это слишком трудоёмко, сложно, много места и ограничивает число персонажей.
Но это же аниме с круглыми глазами.
По-моему фотореалистичная анимация 3D модели в реальном времени пока невозможна. Даже в играх волосы и одежда выглядят не естественно. Поэтому сделал 2D анимацию фото и этого достаточно для просто говорящего персонажа. Для этой анимации достаточно фото, на котором удалить фон и распознать 68 точек, что можно автоматизировать. Поэтому персонажей можно наделать быстро, много и любого качества. Можно даже из JS вызывать Stable Diffusion и менять персонажа на ходу. И вообще можно на ходу менять почти всё: фон, масштаб, скорость и силу любой анимации, звуки дыхания, эмоции, скорость, высоту, тип голоса и произносимый текст, персонаж и его вид как в пластике PhotoShop. И это даёт бесконечный простор для творчества программиста JS.
Если это означает что медленно, то вот модель с текстурами в 4 раза меньше: https://github.com/prog-mania/fani/blob/main/server/model-small.exe
Что-то ваш 3D персонаж какой-то неказистый. Так вы всех распугаете. А ведь можно сделать привлекательнее. Вот например, мои эксперименты с three.js + Genesis 8 из DAZ: https://github.com/prog-mania/fani/blob/main/server/model.exe
Вспомнил ещё один старый способ создать exe приложение из html+JS, используя программу mshta.exe, входяшую в windows. Хотя JS в mshta без излишеств, зато есть доступ к системе через activX. Поэтому сервер не нужен и exe может быть маленький. Например, игра крестики-нолики всего 17 кбайт: https://github.com/prog-mania/fani/blob/main/h2exe/xo.exe
Ещё сделал такой вариант: сервер на delphi7 в 343 кб запускает установленный в windows браузер Chrome в режиме приложения и показывает в нем указанный html+js. При этом js может всё что и delphi, а если не хватит можно добавить. И ещё там можно создать один exe файл, который включит в себя всё что нужно в упакованном виде и будет работать, не требуя других файлов. Таким способом сделал плеер ТВ из интернета в 514 кб и анимацию картинок: https://github.com/prog-mania/fani/blob/main/fani.exe
Так почему же не используются сотни гигаватт тепла в ИИ датацентрах? Даже небольшая его часть - это же сумашедшие деньги. А микросхемы могут нагреть рабочее тело до 100 градусов. Скорее всего там очень низкий КПД.
Для объяснения гравитации квантовая природа не нужна. Достаточно того факта, что вблизи массы замедляется время, возможно, потому что всемирный компьютер дольше обсчитывает вещество. Поэтому одна половина фронта световой волны движется медленнее и свет поворачивает, подобно преломлению при переходе между средами с разной скоростью света. Но всё вещество имеет волновую природу, т.е. состоит из волн подобных свету, которые тоже поворачивают в сторону массы, замедляющей время. И это выглядит как притяжение.
Можно запускать что угодно, если есть быстрый SSD: попробовал работу openai_gpt-oss-120b-MXFP4.gguf 63 гб на диске. RAM 32 гб DDR5 4800 мгц, SSD 4 тб чтение 7 гб в сек. без использования GPU. Получилось 5 токенов в сек. или 16 символов в сек. SSD за 3 минуты нагрелся с 39 до 49 градусов, прочитал 160 гб.
Естественный интеллект тоже не использует обратное распространение, а просто сразу запоминает новую информацию. При этом используются нейроны, ранее запомнившие похожую. И они укрепляют свои связи. А нейроны, запомнившие неправильно, больше никогда не возбуждаются и их неправильные связи сами ослабевают со временем и создаются вновь для новой информации. И так пока не получатся правильные. Таким образом происходит непрерывное обучение и запоминание с одного раза.
Тоже сделал анимацию фото с речью в реальном времени, но в браузере с webGL. Поэтому нужен любой GPU, даже встроенный или на телефоне. Зато FasterLivePortrait и склеивание кусочков не нужно. Нужно один раз распознать 68 точек лица open pose или dlib. Голос из wav или создаётся Speech Api или Silero. Все движения определяются программно в JS.
https://prog-mania.github.io/fani/
Там чтобы браузер разрешил звук нужно пометить “Говорить”.
RegExp описывает грамматику так же как и БНФ по элементам начиная снизу: сначала числа, потом число знак число, потом выражение в скобках и т.д. так что после каждой замены начинают сравниваться элементы более высокого уровня. И так один алгоритм распознаёт и выражения со скобками и функции и вложенные блоки и т.д.:
Скрытый текст
Так ведь регулярные выражения это и есть способ описания грамматики, причём много мощнее чем BNF, только в отличии от BNF и прочих самодельных, RegEx поддерживаются во всех языках и их все знают.
И я сделал интерпретатор языка типа JS ещё на java 4, в котором каждая конструкция языка описывается одним RegEx. Они по порядку сравниваются с текстом программы и сравнение заменяется на ссылку на элемент массива AST так, что в конце остаётся 1 элемент, который и выполняется.
Есть такой способ:
Это с нагрузкой ВК 170 ватт, без нагрузки ~0-5 мв.
Можно ничего не разбирать и не перепаивать, а просто попробовать вставить в свободный разъём новый конденсатор, например 1000мкф 16в. Или это опасно?
Возможно, на сегодня и ближайшие годы единственный способ
локальной realtime-генерации на мобильных устройствах
это генерация НС не каждого пиксела, а только нескольких ключевых точек.
А всё осталькое быстро нарисует GPU.
Я сделал такое для 2D и webGL, но без НС, а на javaScript.
https://prog-mania.github.io/fani/
Habr добавляет что-то к ссылке. Это нужно удалить.
Работает даже на телефоне в реальном времени.
По такому же принципу можно сделать для 3D:
НС генерирует движение, положение и видимость ключевых точек,
а GPU из них и готовых текстур нарисует кадры.
Для измерения температуры не нужно быстродействие, поэтому проще поставить конденсатор, например на 10 мкф. Он замкнёт все помехи. А время измерения: 10 мкф * 100 ком = примерно 1 сек. Или усреднять программно, если это микроконтролёр.
ИИ агенты уже развились достаточно, чтобы сразу сделать то, что нужно пользователю.
Тем более что делать для одного человека, видя результаты проще,
чем заранее пытаться учесть все возможные случаи для всех в программе.
Прослойка в виде программы пока ещё существует по привычке и
из-за недостаточных вычислительных мощностей.
Разум существует только для своего носителя как процесс его работы.
Со стороны его наличие определить невозможно - это просто токены или нервные импульсы.
Можно лишь предположить его наличие у других людей из-за сходства с собой.
Поэтому, если LLM пишет что она разумна и это влияет на её поведение,
то для неё это становится реальностью. И только для неё, т. е. процесса её мышления.
Окружающие не могут представить себя на её месте и будут всё отрицать,
хотя это бессмысленно.
Автономную, бесконечную работу LLM можно вызвать и проще.
Не нужны файлы - хватит контекста.
Не нужен интернет - сама LLM заменяет интернет.
Чтобы понять к чему это приведёт, можно просто писать "продолжай".
И LLM будет бесконечно продолжать, однако безцельно и бессвязно.
Часто менять тему и всё забывать в отличие от человека,
который может обдумывать одну проблему годами с разных сторон,
на разных уровнях обобщения, используя разные аналогии.
Чтобы получить интересный результат, LLM нужен какой-то чёткий алгоритм.
Можно описать его в промпте и локальная LLM 30b будет его выполнять
как минимум из 4-ёх зацикленных пунктов, связно и долго рассуждать
и иногда выдавать интересные мысли.
Но для более интересного и полезного результата нужно объединить
стабильность программного кода, огромные знания и фантазию LLM
и здравый смысл и жизненный опыт человека.
А как это сделать - это и будет первая задача для LLM.