После запуска нужно нажать кнопку loop или клавишу пробел, для запуска симуляции.
В коде есть геном кляксы из первого ролика (triplex), ящерицы (dino) и шестиногой ящерицы (dinoS) из второго ролика
Поменять их можно внеся изменения в код.
В файле cells.pde в самом начале есть такие строки:
void gene_expression(){
//triplex();
dino();
//dinoS();
}
Нужно раскомментировать нужный вариант (убрать //)
и закомментировать остальные (поставить //)
Сейчас активен вариант dino(); который приводит к ящерице.
При запуске ящерицы могут появиться две головы. Это нормально.
Может голова оказаться справа, а тело слева. Это случайный процесс. Первая клетка расположенна у левого края, что бы организм уместился. Рост тела в левую сторону выйдет за пределы рабочего поля и это вызовет ошибку.
Если рост пошёл не в ту сторону, то лучше выключить программу и запустить заново.
Код был написан не для распространения, а для экспериментов и генерации картинок ля ролика.
Поэтому интерфейс не продумывался и элементы добавлялись по мере необходимости.
1. ------
loop - включить/отключить симуляцию.
То же самое можно делать клавишей пробел.
step - пошаговое выполнение
То же самое можно делать клавишей "z".
Можно остановить симуляцию кнопкой "loop" и продолжить выполнение по шагам.
cells - отключение отображения клеток.
Позволяет сильно ускорить симуляцию.
info - Кликнув по клетке можно выделить её. С правой стороны экрана появиться окно с информацией об этой клетке.
Кнопкой "info" можно убрать выделение с клетки и закрыть окно с правой стороны.
2. -----
Каким цветом отображать морфогены.
На картинке для отображения морфогена-1 будет использоваться жёлтый цвет, для морфогенов 2 и 3 будет использоваться бирюзовый цвет, для морфогена-4 будет использоваться розовый цвет.
3. -----
guide вкл/выкл отображение направляющих
kill убить выделенную клетку
kill убить выделенную клетку и окружающие клетки (клавиша Q)
-div отключить деление выбранной клетки
4. -----
Какие гены-триггеры активны в выделенной клетке.
Можно переключать вручную
5. -----
Какие hox-гены активны в выделенной клетке.
Можно переключать вручную.
6. -----
scale - приблизить/отдалить
mode - кликая по правой или левой стороны кнопки, можно переключаться между режимами.
(Стандартный, морфогены, центры гексагональной сетки).
division - отключить деление всех клеток
bTest - переключение булевой переменной bTest для тестов и экспериментов
7. -----
saveB - сохранять картинки в стандартном режиме
saveM - сохранять картинки в режиме морфогенов
Сохраняться будет каждый шаг в формате png в папке со скриптом
Что бы сохранять не каждый шаг, то нужно в коде изменить переменную
int saveEvery = 1;
Сохранение происходит на белом фоне.
Что бы сохранять с прозрачным фоном, нужно в кое изменить переменную
boolean whiteBackGround = true;
на
boolean whiteBackGround = false;
save 1. - скриншот окна программы
8. -----
Кнопки для экспериментов. Я прописывал код для каждой кнопки. Сейчас оставил только код для кнопки b-7.
....
else if(mouseX > 850 && mouseX < 890 && mouseY > h+70 && mouseY < h+90){
// print("but7 | ");
cells[aCell].setGuide(gdDOT);
}
Код делает выделенную клетку организатором. Поправив вручную hox-гены, можно повторить эксперименты с эмбриональной индукции
9. -----
Информационная панель, где можно посмотреть количество клеток, сколько шагов пройдено, координаты центра экрана, frame rate
10. -----
Какие морфогены действуют на выбранную клетку.
В первой колонке концентрация морфогена.
Во второй колонке показано, является ли сама эта клетка источником морфогена и на какую дистанцию распространяется этот морфоген
11. -----
timers - значение в 4 генах, которые используются в качестве таймеров
num - значение в 4 генах, которые используются в качестве числовых переменных