Subscribe.Ru : Новости лаборатории Наномир

Выпуск 236

 Лаборатория Наномир

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

Мегалиты построены на фрактальных принципах?!

 

Исследуя мегалитический комплекс в Баальбеке и Стену плача в Иерусалиме Андрей Скляров обратил внимание на одну важную особенность. И там, и там тысячетонные каменные блоки лежат на более мелких блоках. Что бы это значило?

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

http://nanoworld88.narod.ru/data/037_files/106.jpeg

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


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

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

Обсудить на форуме лаборатории Наномир.


Создаём программу ДНК-тюнинг...

Демонстрация тюнинга на примере пластмассовой модели псевдоурациловой петли тРНК (видео):

http://img-fotki.yandex.ru/get/4514/nanoworld2003.27/0_4d465_2a50cb2c_L.png

Обсудить

 


Инверсная кинематика...

Кушелев: ... скелет для модели тРНК создавать не нужно. Нужно просто связать элементы:

http://img-fotki.yandex.ru/get/5006/nanoworld2003.27/0_4d551_bdfa7c37_L.png

Итак, алгоритм инверсной кинематики имеет смысл встроить в скрипт-синтезатор нестандартных фрагментов ДНК/РНК. При этом модели нуклеотидов не нужно объединять в один объект. Тогда и точки привязки (Pivot Points) для каждого нуклеотида, точнее для всех фрагментов каждого нуклеотида, сохранятся. Их можно будет использовать в качестве матрицы координат вершин ломаной, в которых находятся суставы. Этот скрипт будет вычислять матрицы углов поворота всех звеньев, а другой скрипт будет по этой матрице воспроизводить крупные, но "замороженные" модели ДНК/РНК.

На мощном компьютере можно будет модель целой тРНК собрать с помощью скрипта-синтезатора нестандартных участков. На слабом компьютере придётся определять углы для нестандартных участков по частям, т.е. для каждого участка отдельно.


 Строим упрощённые модели нуклеотидов для сборки сложных моделей ДНК/РНК

http://img-fotki.yandex.ru/get/5503/nanoworld2003.27/0_4d94c_dedc9c65_L.png

Для создания скрипта со встроенным алгоритмом инверсной кинематики упростим модель нуклеотида...

Скрипт упрощённой унифицированной модели азотистого основания:

m1 = mesh vertices: #([5,-15,-5],[5,5,-5],[-5,5,-5],[-5,-15,-5],[5,-15,5],[5,5,5],[-5,5,5],[-5,-15,5]) \
faces: #([1,3,2],[1,4,3],[5,6,7],[5,7,8],[1,2,6],[1,6,5],[3,4,8],[3,8,7],[2,3,7],[2,7,6],[4,1,5],[4,5,8]) \
wirecolor: [0,0,255]

m2 = mesh vertices: #([15,-35,-4.9],[15,-5,-4.9],[-15,-5,-4.9],[-15,-35,-4.9],[15,-35,4.9],[15,-5,4.9],[-15,-5,4.9],[-15,-35,4.9]) \
faces: #([1,3,2],[1,4,3],[5,6,7],[5,7,8],[1,2,6],[1,6,5],[3,4,8],[3,8,7],[2,3,7],[2,7,6],[4,1,5],[4,5,8]) \
wirecolor: [255,0,0]

Все скрипты на эту тему можно посмотреть в копии уничтоженного форума лаборатории Наномир, начиная с части 28: http://nanoworld88.narod.ru/forum/index.htm

 

http://img-fotki.yandex.ru/get/5707/nanoworld2003.27/0_4e155_9d3de63d_M.gif

Кушелев: Инверсную кинематику с применением костей в 3DS Max сделать - не проблема. Проблема обойтись без костей и встроить инверсную кинематику в скрипт.

 

Кушелев: Наконец, инверсная кинематика петли тРНК получилась, хотя и не совсем правильно пока...

Дело в том, что необходимо задать направления осей вращения, которые по умолчанию выбраны как попало. И по-хорошему, нужно реализовать инверсную кинематику с помощью скрипта, т.е. не средствами 3DS Max, а на уровне конкретных формул в скрипте. Это позволит создать адекватную систему юстировки петель тРНК. При этом углы поворота всех элементов должны сохраняться в матрице углов, которую сможет прочесть скрипт-генератор ДНК/РНК...
Так что к созданию скрипта для юстрировки и доработке скрипта-генератора всё-таки желательно привлечь профессиональных программистов. Иначе эта работа может сильно затянуться, а актуальность её высока. Ведь структура тРНК и других РНК интересуют многих молекулярных биологов, т.к. является ключевой в познании механизмов жизни на молекулярном уровне.

Инверсная кинематика.
Автор: Hugo Elias

Перевод осуществил Pavel A. Chuvanov, участник проекта Almighty.

Кинематика — есть процесс вычисление позиции в пространстве для конца взаимосвязанной структуры при заданных углах поворота всех шарнирных точек (Joints). Это легко осуществляется, если есть только одно решение. Инверсная кинематика делает обратное. Для данной конечной точки вычисляются необходимые углы поворота шарниров таким образом, чтобы удалось достичь этой конечной точки. При этом могут возникнуть трудности, если есть много или бесконечно много решений.

Данный процесс чрезвычайно полезен в робототехнике. Например, вы захотели, чтобы рука робота потянулась и взяла объект. Если программа знает местоположение объекта относительно плечевого сустава, то ей достаточно расчитать углы поворота шарниров чтобы достичь объекта. Также инверсная кинематика полезна в 3D играх. Возьмем для примера дракона с очень длинной шеей. Дракон должен реалистично изогнуть шею и слопать игрока стоящего на полу. Или игрок захотел поднять с пола некий объект или нажать на кнопку. Пользователь увидит на экране как игрок потянется и коснется объекта, вместо того чтобы просто махнуть рукой где-то вблизи объекта (как например в Alone In The Dark).

http://img-fotki.yandex.ru/get/5110/nanoworld2003.27/0_4e171_ebf0b72c_orig

Я написал небольшую демку под DOS иллюстрирующую механизм инверсной кинематики. Скриншот показывает как змейка пытается коснуться небольшого вращающегося кубика. Вы можете перемещать цель используя клавиатуру. В демке на змейку действует гравитация и она обладает небольшой эластичностью, поэтому возможно будет двигаться и после того как найдет цель, пытаясь достичь более комфортного положения. Модель змейки находится в файле tail.cfg. Вы можете исправить его чтобы создать какой-нибудь другой объект.

Нет решений

http://img-fotki.yandex.ru/get/4705/nanoworld2003.27/0_4e172_c8009ebc_orig

Существует много случаев, когда связанная структура не в состоянии достичь цели. Например вы не можете коснуться локтем одной руки запястья той же руки. Или достать с земли до верхушки высокого дерева.

Одно решение

http://img-fotki.yandex.ru/get/5906/nanoworld2003.27/0_4e173_8cc49d5_orig

Два решения

http://img-fotki.yandex.ru/get/4515/nanoworld2003.27/0_4e174_71ccb107_orig

В случае если есть два решения, то должна существовать техника выбора, какое из решений больше отвечает текущему состоянию структуры.

Много решений

http://img-fotki.yandex.ru/get/4515/nanoworld2003.27/0_4e174_71ccb107_orig

Когда используется более двух шарниров, часто случается, что существует много решений задачи. Тем не менее, некоторые решения являются лучше других. Если ваша структура представляет, например, руку то некоторые решения более удобны, другие очень неестественны. Часто есть оптимальное решение.

Об алгоритме

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

Этот алгоритм не сразу находит решение. Это не простая функция где вы задаете место назначения и получаете углы. Это итеративный алгоритм, что делает алгоритм более реалистичным в программах, особенно в играх, где вы наверяка хотите, чтобы объекты двигались сглажено.

Решение находится за счет виртуального применения силы к концу цепочки и перетаскивания конца цепочки в конечную позицию. Сила действует на каждое сочленение и двигает структуру немного ближе к конечной точке. Так что даже если решения нет, цепочка приблизится к конечной точки так близко, насколько это возможно. Так как шарниры рассчитываются раздельно, то вы можете задать им разные свойства, такие как жесткость, эластичность и т.д. Каждый из шарниров также может иметь оптимальную позицию, которую алгоритм будет пытаться достичь так близко, как только это возможно.

Инверсная кинематика в 2D

http://img-fotki.yandex.ru/get/5008/nanoworld2003.27/0_4e175_d8198529_orig

Начнем с одного шарнира. В данном случае он может вращаться вокруг только одной оси (направление против часовой стрелки выберем как положительное). Вектор R действует под прямым углом к кости. Вектор силы F действует от конечной точки в направлении цели. Угол между R и F есть a. Теперь все совсем просто. Скорость, с которой вы должны поворачивать шарнир, пропорциональна скалярному произведению (dot product) векторов R и F. Придерживаясь точки зрения, что скалярное произведение двух векторов положительное число, и, конечно же, шарнир должен вращаться в положительном направлении, чтобы максимально приблизится к цели. Если угол между R и F прямой, то шарнир повернулся так, чтобы кость была максимально близко к цели и поэтому шарнир не должен больше поворачиваться. В этой точке скалярное произведение двух векторов даст ноль.

torque = (RF) * k

http://img-fotki.yandex.ru/get/5408/nanoworld2003.27/0_4e176_9960242a_orig

Ну вот, приехали. Случай потяжелее. Впредь, все будет просто разновидностью данного случая. Когда вы имеете больше одной кости вы просто должны повторить вышеописанный алгоритм для каждого шарнира по очереди.

Начнем с шарнира ближайшего к цели:
1. Вычислим вектор силы (от конечной точки к цели)
2. Вычислим скалярное произведение вектора силы и вектора, перпендикулярного кости.
3. Умножим скалярное произведение на небольшое число (например 0.01)
4. Добавим его к углу шарнира.

Делаем так для всех шарниров последовательно.

Инверсная кинематика в 3D

В трехмерном пространстве вычисления будут не намного сложнее. Есть три возможных оси, вокруг которых шарнир может вращаться. Я попытался применить вышеописанный метод в трехмерном пространстве, но результаты были не слишком хорошими. Я не до конца понял почему. Тем не менее эта математика безусловно работает. Есть нечто, что требует большого количества изменений установок, чтобы все работало, безусловно, правильно.

Ну, что ж, двигаемся дальше.

Ось шарнира перпендикулярна кости

Сперва давайте попробуем пример, приведенный выше, но в этот раз в 3D. Это система с двумя шарнирами и мы сперва возьмем первый шарнир.

http://img-fotki.yandex.ru/get/4810/nanoworld2003.28/0_4e177_1b9d84ce_orig

Дадим названия векторам
a - Вектор вдоль оси шарнира.
b - Вектор вдоль кости.
r - Вектор перпендикулярный a и b.
f - Вектор силы (действующий от конечной точки к цели).

Если вектор силы будет параллелен a, шарнир не будет вращаться. Если он параллелен b, то вы просто тащите кость, шарнир не будет вращаться. Вооружившись данными пустулатами, я решил что вращающий момент должен быть пропорционален синусу угла между a и f и синусу угла между b и f.

Если конечная точка пришла в точку цели, то вы не хотите, чтобы структура двигалась, но если конечная точка далеко от цели, то вы хотите, чтобы структура двигалась быстро. Следовательно, вращающий момент должен быть пропорционален длине вектора силы.

Есть только одна вещь, которую нельзя понять из вышеописанного - направление в котором должен вращаться шарнир. Пусть шарнир должен вращатсья в положительном направлении если вектор силы направлен вдоль r, и в противоположном направлении в случае если вектор силы направлен противоположно r.

Сложив все воедино получим:

torque = Mag(f) * SinVect(a, f) * SinVect(b, f) * sign(CosVect(r, f)) * Sensitivity

В данной формуле SinVect и CosVect возвращают соответственно синус и косинус угла между векторами. Mag возвращает длину вектора, и sign возвращает знак числа. Sensitivity - это просто небольшая скалярная константа.

http://img-fotki.yandex.ru/get/5210/nanoworld2003.28/0_4e178_44035863_orig

Теперь вы можете двигаться к следующему шарниру в структуре. Вычислим новые значения векторов a,b и f, и вычислим крутящий момент для шарнира 2. Вычислим крутящий момент для всех шарниров в структуре и добавим к углу каждого шарнира по его крутящему моменту. Конечная точка должна теперь быть ближе к цели. Непрерывно повторяя процесс мы сможем приблизить конечную точку структуры к цели максимально близко или даже коснутся цели.

Ось шарнира направлена вдоль кости

http://img-fotki.yandex.ru/get/4705/nanoworld2003.28/0_4e179_2e758302_orig

Хорошо, давайте взглянем на более трудный случай. Но здесь нет ничего нового. Здесь вы видите связанную структуру состоящую из четырех шарниров. Шарнир номер два, тем не менее, может вращаться вокруг оси своей кости. Это похоже на изгиб вашего запястья. И конечно этот шарнир наиболее важен. Как и в предыдущем случае, вектор a будет проходить вдоль оси шарнира, но в этом случае это еще и вдоль кости. Вектор b сейчас идет от шарнира к конечной точке. Вектор r как и раньше перпендикулярен обоим.

http://img-fotki.yandex.ru/get/5508/nanoworld2003.28/0_4e17a_c1400526_orig

Чтобы достичь цели шарнир 2 должен повернуться на 90 градусов (см. правую картинку).

И закончим тем, что вектор b различен для шарниров чья ось вращения параллельна кости.

Дополнительные замечания.

Теперь, когда вы освоили базу инверсной кинематики, есть еще задача регулировки системы, чтобы задать ее поведение в различных ситуациях. Как я говорил до этого, есть много разных решений. Некоторые лучше, некоторые хуже. Различаются тем как они смотрятся, величиной затраченных движений или удобством.

Сглаживание кривых

Реальная змейка на реальной анимации редко когда запутывается сама в себе. Она имеет тенденцию образоввывать довольно гладкие кривые. Змейка в демке сделана из пар шарниров оси, которые перпендикулярны друг другу. Первоначально написанная змейка двигалась не слишком реалистично. Поэтому я добавил ей немного элластичности в шарнирах. Из-за этого шарниры сопротивляются изгибу. Чем больше вы их сгибаете, тем более они сопротивляются. Эффект от этого такой, что изгиб разпространяется по шарнирам.

Давайте взглянем на динозавра. Он очень толстый в теле, но становится более тонким и гибким в шее. Это свойство может быть симулировано связанной структурой, сочленения которой все более и более элластичны к концу.

Удобное положение

Конечности предпочитают находится в удобном положении. Это может быть выполнено новым добавлением элластичности шарнирам. Тем не менее в этом случае может быть наилучшим иметь определенный ряд положений для каждого шарнира в котором нету сопротивления. Этот ряд может быть рассмотен как удобный. После того как шарнир покидает удобное положение он будет сопротивлятся все сильнее и сильнее пока совсем не откажется вращаться.

Также может быть желательно держать конечность максимально низко. Люди редко долго держат свои руки на весу более, чем это необходимо. Поэтому положение выбирается исходя из минимальной энергии требующейся для удерживания положения.

Оригинал: http://freespace.virgin.net/hugo.elias/models/m_ik.htm

8 июня 2002


Кольцегранная и многогранная (упрощённая) линейные модели ДНК / РНК.

  

 

Для моделирования поворотов, петель и других нелинейных участков ДНК / РНК необходимо встроить в программу алгоритм инверсной кинематики для юстировки углов между элементами. Решение этой проблемы упрощается за счёт наличия комплементарных пар азотистых оснований, которые фиксируют сопряжённые нуклеотиды, т.е. позиции этих нуклеотидов известны с пикометрической точностью. Тем не менее задача требует привлечение высококвалифицированных программистов, освоивших работу с MaxScript.  Созданные с помощью профессионалов версии Пикотех могут принести фантастическую прибыль инвесторам...

Скрипты, по которым построены эти модели см. в 28-ой части копии уничтоженного форума.


Прямая кинематика ДНК/РНК/белков

http://img-fotki.yandex.ru/get/5906/nanoworld2003.28/0_4e1af_a92949e2_orig.gif

Анимация: http://video.yandex.ru/users/nanoworld2003/view/44/

Так выглядит обрезанная двойная спираль РНК

http://img-fotki.yandex.ru/get/5110/nanoworld2003.28/0_4e1b0_9c7e4905_orig.gif

Её можно замкнуть поворотом единственного нуклеотида...

Анимация: http://video.yandex.ru/users/nanoworld2003/view/42/

http://img-fotki.yandex.ru/get/4910/nanoworld2003.28/0_4e1b1_ddf70add_orig.gif

Анимация: http://video.yandex.ru/users/nanoworld2003/view/43/

Но механизм петли из 4 нуклеотидов, два из которых образуют комплементарную пару, работать не будет, т.к. диэфирная связь разорвётся. Виктория Соколик оказалась права.

http://video.yandex.ru/users/nanoworld2003/view/13/

http://video.yandex.ru/users/nanoworld2003/view/17/

Я проверил, пластмассовая модель псевдоурациловой петли содержит 7 нуклеотидов, причём два из них образуют минор Кушелева, два - комплементарную пару с перевёрнутым на 180 градусов основанием псевдоурацила и тремя неспаренными нуклеотидами, один из которых выполняет функцию резонансного руля, а второй - упора. Так что транспозиционные углы псевдоурациловой петли нужно изменить "по полной программе" :) Быстрее всего их значения можно получить с помощью прецизионного дигитайзера, но возможен и виртуальный вариант, но для этого потребуются стерео очки и современный компьютер. На устаревшем это - пустая трата времени...


Упрощённая (многогранная) модель ДНК/РНК помогла сделать научное открытие!

 

Анимация: http://video.yandex.ru/users/nanoworld2003/view/45

Упрощённая (многогранная) пикотехнологическая модель ДНК помогла уточнить угловые и линейные геометрические параметры по сравнению с более сложной кольцегранной моделью ДНК / РНК:

 

Упрощённая модель оказалась точнее!

Угол наклона ступеней ДНК оказался равным 90 градусам, т.е. ступени ориентированы не перпендикулярно, а параллельно оси симметрии "винтовой лестницы" :) Кроме того, удалось уточнить пропорции ступеней, состоящих из комплементарных пар азотистых оснований. Длина, ширина и толщина ступени ДНК относятся, как числа 7:3:1

Обсудить на форуме лаборатории Наномир.

http://img-fotki.yandex.ru/get/4704/nanoworld2003.28/0_4e529_c5d5a52_S.gif

ДНК (вид вдоль оси симметрии)

http://img-fotki.yandex.ru/get/4910/nanoworld2003.28/0_4e52d_17c53d1c_S.gif

Анимация: http://video.yandex.ru/users/nanoworld2003/view/47/

 Приглашение к сотрудничеству

для людей умеющих самостоятельно мыслить; не просто умных, а мудрых, которые чувствуют, где истина

Лаборатория Наномир готова к любому взаимовыгодному сотрудничеству. У нас есть  сторонники как явные, которые помогают морально и материально, есть очень много пассивных наблюдателей, есть и ярые противники, которые используют любые методы и средства (аморальные и просто преступные), чтобы уничтожить работу лаборатории и дискредитировать ее.

В одиночку внедрить технологии, выводящие цивилизацию на новый уровень,  невозможно. Благодаря поддержке множества заинтересованных людей проделана огромная работа. Ознакомиться с её результатами можно изучив материал рассылки "Новости лаборатории Наномир". Люди науки могут изучить научные труды.

Вклад каждого не останется незамеченным  в случае успеха в реализации научных проектов. Результаты совместной деятельности принадлежат участникам проекта пропорционально коэффициентам творческого и финансового участия.

В этом году были куплены рубиновые шарики для эксперимента на сумму ~1000 долл. В результате было сделано научное открытие, проверена защита диэлектрических резонаторов от перенапряжения. В этом же году, вероятно, можно было создать микроволновую энергетику, если бы удалось купить рубиновых шариков на сумму ~5000 долл. или найти сырьё (рубин N11), из которого можно сделать рубиновые шарики для эксперимента в Дубне.

Уже готов эксперимент по созданию "эликсира вечной молодости". Благодаря первому взносу (в размере 500 долларов) Золдракса в ближайшие дни он начнется. Сейчас ведутся переговоры еще с двумя потенциальными инвесторами по поводу финансирования этого проекта.

Созданы первые версии пикотехнологии, с помощью которой Александр Кушелев и Виктория Соколик сделали более10 научных открытий.

Сотрудничество может быть различным:

- участие в научных дискуссиях на форуме (конструктивное)

- совместное создание коммерческого продукта

- поиск инвесторов

- выступить менеджером по продаже готовых коммерческих продуктов

- конструктивные предложения по продвижению идей лаборатории Наномир

- содействие в проведении экспериментов и т.п.

- написание совместных научных статей и т.п.

- материальный вклад (денежный или обеспечение оборудованием и материалами)


Пожалуйста, сообщайте о своем вкладе, чтобы мы зачли Вас как партнера лаборатории Наномир.

+7-926-5101703, +7-903-2003424, +7-916-8265031, Skype: Kushelev2009, mail: kushelev2011@yandex.ru

веб-мани: WM-кошелек R426964799301