Наиболее интересна работа в областях :
Реализация микро-сервисов, работающих с Облачными технологиями ( AWS, Core Weave и подобных Провайдеров ) : автоматизированный запуск Виртуальных Машин через API, запуск на них приложений ( в том числе, графических, в том числе на UE 4 ) и резервирование для клиентов ( веб, специализированные PC и мобильные приложения ) для дистанционного выполнения задач.
Реализация микро-сервисов так, чтобы они держали высокую нагрузку : тысячи и десятки тысяч клиентов одновременно. Применение High Load и High Availability - техник при проектировании архитектур микро-сервисов, их взаимодействия и написании кода. Создание Ботов для Нагрузочного Тестирования, организация Нагрузочных Тестирований, анализ их результатов и делание выводов о том, что нужно сделать для улучшения работы микро-сервисов, и реализация этого в архитектурах и коде.
Управление командами Middle - Senior UE 4 - разработчиков, DevOps-специалистов, клиентских Веб-разработчиков и разработчиков микро-сервисов для реализации проектов.
Декомпозиция задач для реализации проектов, оценивание времени для реализации задач и оценка рисков.
Определение задач для них и их приоритетности ( что, как и когда нужно сделать ), умение добиваться реализации задач в срок, помощь работникам в решении возникающих вопросов, проверка того, как они реализуют задачи.
Выполнение моей часть работы для реализации проектов.
Оценка рисков при принятии решений и определении того - что нужно делать и в какие моменты это нужно делать, а в какие моменты этого нельзя делать, и что нужно сделать сначала, чтобы приступить к реализации этого.
Умение нести ответственность за реализацию и развитие проектов.
Организация Релизных Циклов : Development => Test => Production и необходимых для этого окружений.
Решение внештатных ситуаций, когда они возникают по тем или иным причинам, и помощь DevOps-специалистам по быстрому запуску микро-сервисов и решению возникающих вопросов. Умение находить причины таких ситуаций и определение того - что нужно сделать, чтобы они не возникали вновь.
Создание тренажёров, симуляторов, визуализаций, конфигураторов и других графических приложений, Virtual Reality и Augmented Reality приложений и рендеринга для промышленности, коммерции ( магазины, реклама и другие направления ), бизнеса и индустрии развлечений ( фильмы, мультфильмы, заставки, игры и другие области ) с применением движков Unreal Engine 4, Unigine, Unity3D и других, а также создания игр на движках UE 4, Unigine, Unity3D и других.
Разработка шейдеров HLSL и GLSL, реализация самых новых разработок в области графики ( из научных PDF - публикаций и книг и примеров AMD/ATI и NVIDIA - в работающие практические приложения ).
GPGPU-вычисления OpenCL и DirectCompute в движке Unreal Engine 4 для создания крупных симуляций, эффектов, процедурных моделей, вычислений и так далее.
Реализация полезных на практике приложений с применением UE 4 Virtual Production, Composure, Pixel Streamming, nDisplay и других подобных технологий.
Node.JS, Linux и Docker - API-серверная разработка + работа с Базами Данных с применением :
Koa 2, Nest.JS и Express - REST API,
Mongoose, Sequelize и Knex ( PostgreSQL, MySQL и SQLite ) и Redis,
коммуникации микро-сервисов через NATS,
TypeScript,
Vue.js,
Joi,
JSON Web Token, CAS, OAuth2, OpenId для аутентификации,
nodemailer и handlebars для отправки писем,
Pino,
ESLint,
Yarn и NPM,
Unit testing : AVA, Mocha + Chai,
async/await и Promises,
API Blueprint,
cluster для создания основного и рабочих процессов,
agenda для планирования задач и очередей выполнения команд,
microtasks, macrotasks and Event Loop,
PM2, systemd и init.d для запуска микросервисов,
NGINX для High Load и High Availability,
Git, GitHub, GitLab, Jenkins и BitBucket, Husky и SVN,
Docker для установки сервисов на серверах,
Микросервисы и монолиты.
Также интересна работа в областях :
Криптография и криптовалюты,
Анализ статистических данных с применением математической статистики, Нейронных Сетей ( TensorFlow.JS и C++ TensorFlow и Caffe + OpenCL ), Support Vector Machines и других инструментов на C++, JS, R и в других языках программирования,
Linux, C++, Qt, Docker,
Сетевые технологии, High Load и High Availability,
Отладка, оптимизация и Unit, Нагрузочное и Функциональное тестирования - в областях работы.
Умею выполнять Research and Development - работу, когда я читаю научные публикации и книги в этих областях работы и реализую полученные знания на практике для решения реальных задач и оптимизации текущих решений.
http://imagination-works.ru .
С 2002 года я занимаюсь разработкой компьютерных игр, сначала в виде создания небольших примеров, затем уже в виде полностью готовых игр. Программировать на Delphi + Pascal я начал в 1999 году, затем освоил C++ и Assembler, а также языки веб-разработки и работы с СУБД. Новыми проектами являются игра Elite vs Freedom http://store.steampowered.com//app/420670 http://www.elitevsfreedom.com/ на движке UDK и Modern Conquistadors http://www.modern-conquistadors.com на движке UE4, которая находится на ранней стадии разработки. Также я создал свой движок и небольшую обучающую игру на нём "Путешествия в Доисторические Времена - Триас" http://rodionkarimov.narod.ru/html/games/2010/j_to_pt_trias.html . Начал разработку GPGPU рэйтрэйсингового движка для создания игры на нём : http://www.indiedb.com/games/on-the-other-side-of-wormhole .
Работал в проекте Wake Up Call с 2013 по 2014 годы, пока он создавался на движке UDK и немного при переходе на UE4. Также участвовал в работе по созданию небольшой частной MMO-подобной игры для заказчика на движке UDK, квеста по тушению пожаров на Unity3D и различных небольших проектов на Unity3D. Также у меня есть большой опыт создания сайтов на WordPress и Host CMS, их серверной ( PHP + MySQL и AJAX ) и клиентской частей ( HTML, CSS, JavaScript, JQuery ) вместе с вёрсткой. Умею работать с Node.JS и SQL ( MySQL, PostgreSQL и SQLite ) и NoSQL СУБД ( Redis ). Я создал, поддерживаю и развиваю мой сайт http://imagination-works.ru .
Разбираюсь в Augmented Reality ( AR ), Virtual Reality ( VR ) и распознавании образов ( например, с помощью библиотеки OpenCV ). Могу создать сборки проектов на UE 4 и Unity 3D для Android и iOS.
Есть большой опыт создания шейдеров : начал их создавать ещё в 2006 - 2007 годах с ATI_pixel_program, затем ARB_vertex/pixel_program, затем GLSL, затем HLSL, DirectCompute и OpenCL; затем шейдеры для Unity 3D и материалы для UDK и UE4. Хорошо разбираюсь в 3D математике для игр и трёхмерной графики, могу реализовать пакетную трассировку лучей на процессоре или GPU.
Умею работать с Photon Networking Engine и подключать его C++ SDK к Unreal Engine 4. Есть опыт работы с физическими движками Bullet и Newton и настройки физического взаимодействия PhysX в движках UDK, Unity 3D и UE4. А также опыт работы с Python : плагины экспорта для Blender, дополнения для Mount and Blade и работа с движком Panda 3D. Могу создавать, редактировать и текстурировать модели в 3D Coat и TrueSpace 3D и могу анимировать в TrueSpace 3D. Хорошо умею работать в Photoshop и с видео и звуком ( https://www.youtube.com/channel/UC0ox6x5jY20QnbmNpCyaRPg ) .
Умею защищать приложения, разбираюсь в криптографии, могу создать криптовалюту на основе уже существующей, изменить её и добавить к ней различные функции. Могу читать и понимать книги ( например, Physically Based Rendering ) и научные статьи ( технологии рендеринга, искусственный интеллект, компьютерные зрение и распознавание образов, криптовалюты, криптография, защита приложений, технологии программирования и другие ) на английском языке и применять полученные знания для решения конкретных задач и реализации проектов. Читаю книги по высшей математике : линейная алгебра, дифференциальные уравнения, математический анализ, ... - для поддержания и развития уровня математических знаний для работы.
Умею работать в Linux, могу пересобрать ядро, установить и настроить систему, умею компилировать программы, в том числе, кросс-компилировать под другие ОС. Могу создать интерфейс программы в Qt. Умею работать с SVN и Git : update, diff, merge, commit.
Примеры :
2022 :
Создание моего проекта - глобальной стратегии Дух Времени на движке UE 4 : https://vk.com/spirit_of_time_strategy .
2020 :
Пример получения, парсинга и отображения данных о погоде с сайта OpenWeatherMap.org в Unreal Engine 4 : https://bitbucket.org/RodionKarimov/weather/src/master/ .
Interaction via WebCamera in Unreal Engine 4 with help of Instanced Static Meshes and tesselation :
https://youtu.be/K5cVpeeQ1ZM .
Audio Spectrum visualization in Unreal Engine 4 with help of Instanced Static Meshes and tesselation :
https://youtu.be/RkQo6vxsg1U .
OpenCL raytracing in Unreal Engine 4 :
https://yadi.sk/d/koG92bYbK66KFA - here spheres are traced in OpenCL, then result is copied to UE 4 dynamic texture and rendered on a surface in 3D world.
Пример API-сервера на Node.JS и TypeScript :
https://bitbucket.org/RodionKarimov/api-server-example/src/master/
git clone https://RodionKarimov@bitbucket.org/RodionKarimov/api-server-example.git
с применением :
Koa 2, Mongoose, Joi, JSON Web Token, Pino,
nodemailer, handlebars и agenda для отправки писем и очередей событий,
cluster для запуска основного и рабочих процессов,
OAuth2,
ESLint,
Yarn,
Unit testing : Mocha + Chai,
API Blueprint,
Git, Husky,
сервис можно запустить в рабочем режиме с помощью PM2 или systemd.
Здесь реализованы методы POST и GET /clients/ и GET, PUT и DELETE /clients/{idClient}/ .
2019 :
Симуляция водной поверхности на процессоре и GPU с помощью OpenCL в движке Unreal Engine 4 с помощью ProceduralMeshComponent :
https://bitbucket.org/RodionKarimov/watersurfacesimulation/src/master/
git clone https://RodionKarimov@bitbucket.org/RodionKarimov/watersurfacesimulation.git
Документация по компиляции проекта располагается в файле : Documents/Компиляция проекта.txt .
2018 :
Криптовалюта Binarium ( C++, криптография, Qt, Linux, кросс-компиляция, Git, networking, ... ) :
https://binarium.money/
https://binarium.money/about/
https://github.com/binariumpay/binarium
https://binarium.money/static/files/binarium/binarium_cryptocurrency_whitepaper_ru.pdf
https://binarium.money/static/files/binarium/binarium_cryptocurrency_whitepaper_en.pdf .
Майнинг-пул криптовалюты Бинариум ( C, Node.JS, криптовалюты, block-chain, криптография, Web, JSON, networking, Git, кросс-компиляция, Linux, Assembler, ... ) :
http://pool.binarium.money ,
Node Open Mining Portal : https://github.com/binariumpay/node-open-mining-portal ,
Node Stratum Pool : https://github.com/binariumpay/node-stratum-pool ,
Node Multihashing : https://github.com/binariumpay/node-multi-hashing ,
CPUMiner-Easy : https://github.com/binariumpay/cpuminer-easy .
Диагностирование диабета и определение предрасположенности людей к такой болезни Нейронной Сетью по данным индейцев Пима на основе TensorFlow.JS :
http://imagination-works.ru/applications/ai/2018/10.17_diabetes_diagnosing_and_determination_of_prospensity_to_it_of_people/index.html ,
https://binarium.money/ai/test4 , https://vk.com/binarium_money?w=wall-166229593_315 ,
среди данных индейцев Пима у многих записей есть отсутствующие поля, по этому нужно их восполнять, чтобы не терять важную информацию. Для этого в приложении реализованы 2 метода восполнения отсутствующих данных : k-Nearest Neighbours ( самый точный ) и Median Imputation ( менее точный, но более быстрый ) - нужно выбрать один из них и нажать на кнопку Train Network. Максимальная точность диагностирования 82 - 84 % : достигнет ли Нейронная Сеть её или нет зависит от того, в какой из минимумов функции оценки неточностей моделирования НС целевого явления она попадёт при тренировке и от того, какие данные попадут во множества для тренировки и проверки. Нейронную Сеть нужно тренировать несколько раз по новой, чтобы она достигла точности 82 - 84%. После этого нужно в области Predict ввести данные человека для диагностирования и нажать на кнопку Predict : Нейронная Сеть выдаст информацию о том : болеет ли человек диабетом или нет, какова вероятность этого и каков уровень предрасположенности человека к такой болезни. В дополнение к этому приложение отображает статистическую информацию о полях данных для анализа : min и max, количество сэмплов, среднее выборочное значение, дисперсия и среднеквадратическое отклонение. Команды из университетов на этих данных достигают точности диагностирования 90 - 97% с применением Support Vector Machines - я их реализую в этом примере, в дополнение к Нейронным Сетям. Таким же образом можно диагностировать людей на наличие любых болезнией и вообще проводить классификацию любых данных : надёжных и бракованных деталей, надёжности людей, берущих кредиты, надёжности поставщиков торговых сетей, выявления мошеннических действий посетителей интернет-магазинов и для других задач классификации в практических областях.
Анализ кредитов ВБРиР, выданных Бразилии и завершившихся в период с 1990-го по 2000-й годы, Нейронной Сетью на основе TensorFlow.JS :
https://binarium.money/ai/test2 ,
https://vk.com/binarium_money?w=wall-166229593_264 ,
https://binarium.money/grid/ibrd_data_analysis/ .
Калькулятор эффективности майнинга в сети Бинариума на основе TensorFlow.JS :
http://imagination-works.ru/applications/ai/2018/10.9_binarium_mining_efficiency_calculator/index_2.html
Эта программа после анализа статистических данных о создании блоков в сети Бинариума Нейронной Сетью предсказывает через какое время будут созданы 1000 следующих блоков и считает долю пользователя по его Hash-Rate среди награды за эти блоки.
Пример обучения нейронной сети с применением библиотеки TensorFlow.JS :
https://binarium.money/ai/test1 ,
https://binarium.money/info/ai/ ,
https://vk.com/binarium_money?w=wall-166229593_198 .
Реализация задач для игры BattleBeasts на движке UE 4 ( Blueprints и C++ ) :
https://store.steampowered.com/app/830580/BattleBeasts/ ,
https://playbattlebeasts.com/ .
GunBlaze UE 4 game ( C++, Blueprints, Networking, Искусственный Интеллект, интерфейс, игровой процесс, реализация моделей в игре, ... ) : https://youtu.be/tupHFaSxuO4 , http://luckasart.com/ .
https://youtu.be/oyIxjHCPFRg ,
https://youtu.be/5h0ksNbs-yk .
Оптимизация трассировки лучей с помощью OpenCL.
https://yadi.sk/d/KcpDEIwF3XvNf8 .
В этой программе я перенёс трассировку лучей с CPU на GPU в OpenCL, сделал пакетную трассировку 4-х лучей и реализовал ускоряющую структуру BVH ( с несколькими алгоритмами её создания ). В результате расчёт изображения с 8250 мс начал идти 50 мс - ускорение в 165 раз.
Игра ZoneDriver ( UE 4 ( C++ и Blueprints ) + Python + PostgreSQL ) :
http://store.steampowered.com/app/700770/ZoneDriver/
http://cdn.edgecast.steamstatic.com/steam/apps/256704587/movie480.webm?t=1514296974
https://vk.com/zonedriver .
2017 :
Unreal Engine 4 ( UE 4 ) Augmented Reality ( AR ) example : https://www.youtube.com/watch?v=YYVOE5D2fV0 - This is a Augmented Reality ( AR ) example, created in Unreal Engine 4 ( UE 4 ). It tracks marker in video stream and positions personage above it. There is simple interface for control of actor and ability to customize his equipment. There is also ability to zoom and rotate the model.
Модель лазерной винтовки ( 3D Coat и TrueSpace 3D ) : https://yadi.sk/i/LO-z98Z13XxCWT .
Модель бомбы ( 3D Coat и TrueSpace 3D ) : https://yadi.sk/i/EmJ6J08f3XxCd7 .
Пример сетевой игры : в ней есть главное меню с возможностью запуска сервера и подключения к серверу. По нажатию на клавишу C на правой руке Pawn'ов клиентов появляются кубы. Это действие реплицируется на сервер и от него - non-owning-клиентам. https://yadi.sk/d/0bDEM2iH3M9DrG .
2016 :
Modern Conquistadors ( UE 4 ) gameplay early development : https://youtu.be/qxPvknXhgYs .
Elite vs. Freedom - игра - шутер от третьего лица на UDK ( Unreal Engine 3 ) :
http://www.elitevsfreedom.com ,
https://store.steampowered.com/app/420670/Elite_vs_Freedom/ .
Динамические материалы воды в UE 4 с взаимодействием с объектами с помощью Distance Fields : https://1drv.ms/u/s!AshCuqaqLAdGggb8wDiEkdAuo1aw .
Крестики-нолики на C++ в UE 4 с простым искусственным интеллектом : https://yadi.sk/d/-piHUNk-39VfjD .
Тестовая игра в UE 4 на Blueprints : https://yadi.sk/d/gTPYQNhT39Vh6U , её цель - полностью исследовать одну технологию, чтобы при этом количество очков игрока стало равным нолю.
Простой Арканойд, созданный на UE4 в Blueprints за 1 - 1,5 часа работы : https://yadi.sk/d/1HmVmlVDz4Nu3 .
2014 :
Тестовое C++ приложение с реализацией примеров OpenCV для обучения работе с этой библиотекой : https://yadi.sk/d/fWhttyqw3Y7bsX .
Selective Attention Test : https://yadi.sk/d/9amPwKQX3YhUnG - C++-приложение для тестирования способности людей различать разные звуки. В нём пользователям предоставляются 10 шагов тестирования, в которых они должны отличить звуки, и затем им отображается результат тестирования. Приложение применяет DirectX 9, libRocket для интерфейса, PortAudio для воспроизведения аудио, декодирует FLAC-файлы и даёт возможность воспроизводить звуки с разной частотой.
2013 :
On the Other Side of Wormhole : GPGPU пакетный рэйтрэйсинговый движок на DirectCompute, DirectX 10 , Bullet Physics Engine, PortAudio, XInput 2 и других технологиях и прототип игры на нём :
http://www.indiedb.com/games/on-the-other-side-of-wormhole ,
https://www.indiedb.com/games/on-the-other-side-of-wormhole/downloads/milestone-ii-revision-10 .
CPU и OpenCL реализации алгоритма Floyd'а-Warshal'а для поиска всех кратчайших путей в графе по матрице связности : https://yadi.sk/d/ANQal3-O3W3y3r .
Программа для прокручивая изображений и видео на нескольких мониторах ( C++, DirectX 11, Shaders, inline Assembler ) : https://yadi.sk/d/UxVZv73l3XxKyf .
2012 :
Objects Observation в UDK : показывает пример взаимодействия с объектами с помощью UnrealScript : https://www.dropbox.com/s/nuexxhbsy0vces7/UDKInstall-OO.exe?dl=0 .
3D Pendulum ( C++, DirectX 11, Shaders ) : https://yadi.sk/d/9WsMT2yl3XxKp5 - программа - симуляция маятника с графической частью на DirectX 11 и шейдерах.
2011 :
Экосистема на Unity 3D, показывает искусственный интеллект и поведение ботов : https://yadi.sk/d/UxXbyjx33XxK8z .
Кастомизация актёров в Unity 3D : https://yadi.sk/d/AWQ5ZpuE3XxKBo .
2010 :
Путешествия в Доисторические Времена - Триас : образовательная игра на моём движке :
https://allsoft.ru/software/independent-vendors/2957160/puteshestviya-v-doistoricheskie-vremena--trias-/ ,
http://rodionkarimov.narod.ru/html/games/2010/j_to_pt_trias.html .
Тестовые приложения на Free Pascal, применяющие движок 3Impact : https://yadi.sk/d/2-l3-dvi3Y7Zi4 .
Небольшой редактор, применяющий DirectX 9 на Free Pascal и C++ : https://yadi.sk/d/tCm6aLdZ3Y7a3h .
CPU-профилировщик на Free Pascal со встроенным ассемблером : https://yadi.sk/d/G7VyhkwE3Y7bi8 .
Модификации миссий Mission Director'a для игры X3 Terran Conflict : http://rodionkarimov.narod.ru/html/programs/2010/mission_director_missions_modifications_for_x3tc.html .
Модификации Common и Weapons для игры X3 Terran Conflict : http://rodionkarimov.narod.ru/html/programs/2010/modifications_common_and_weapons_for_x3tc.html .
2009 :
Пример трассировки лучей ( CPU, OpenGL, Free Pascal, inline Assembler ) : http://rodionkarimov.narod.ru/html/programs/2009/raytracing_example.html , http://rodionkarimov.narod.ru/programs/raytracing.7z .
Программа OpenGL Information ( Free Pascal, Lazarus ) : http://rodionkarimov.narod.ru/html/programs/2009/opengl_information.html , http://rodionkarimov.narod.ru/programs/opengl_information/opengl_information_1_1.7z - показывает информацию о производителе видеокарты, самой видеокарте, версии OpenGL и поддерживаемых расширениях.
OpenGL-движок игр, применяющий ARB_fragment и vertex programs, теневые объёмы, Parallax Mapping, HDR и другие технологии рендеринга : https://yadi.sk/d/0dceCuTE3Yf9dm .
Плагины для экспорта моделей из blender'а на Free Pascal, часть со встроенным ассемблером с SSE-инструкциями для оптимизаций : https://yadi.sk/d/Y6GPI1GR3Y7azs .
Программа для генерации текстур на основе шума Perlin'а на CPU на Free Pascal : https://yadi.sk/d/3RZ3_zpJ3Y7bND .
Тестовые графические OpenGL и DirectX приложения на ассемблере FASM, NASM и TASM : https://yadi.sk/d/D5lLbhaP3Y7bXj .
Интерактивная геохронологическая таблица жизни на Земле ( HTML, CSS, JavaScript ) : http://rodionkarimov.narod.ru/html/services/geochronological_scale.html .
Переводчик единиц измерения ( HTML, CSS, JavaScript ) : http://rodionkarimov.narod.ru/html/services/measurment_systems_translator.html .
2008 :
Программа Lovely Tiny Console ( Free Pascal, Lazarus, inline Assembler, защита программы, антиотладка, шифрование и хэширование ) :
https://allsoft.ru/software/independent-vendors/2957160/lovely-tiny-console-gs/ ,
http://rodionkarimov.narod.ru/html/programs/2009/lovely_tiny_console.html -
у программы есть 2 версии : бесплатная, в которой есть оболочка консоли для удобных работы с вводом и выводом консоли, и расширенная в которой есть дополнительно к этому : графический интерфейс для настройки, а также функции для хэширования и шифрования информации с помощью различных криптографических функций.
Программа Normal Map From Height Map Writer ( Free Pascal, Lazarus, inline Assembler ) : http://rodionkarimov.narod.ru/html/programs/2009/normal_map_from_height_map_writer.html , http://rodionkarimov.narod.ru/programs/normal_map_from_height_map_writer/normal_map_from_height_map_writer_1_1_1.7z - записывает карту нормалей из карты высот и даёт возможность задавать различные параметры генерации карт нормалей и сохранять их в различных форматах. Есть наработки по генерации клеточных текстур на основе кода такой программы.