Выбрать главу

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

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

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

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

Примерно с этого и началась работа над программой 2DWORLD. В первом семестре студенты под моим руководством не только описали в программе некоторый набор объектов и закон сохранения энергии, но и создали целую систему планет, вращающихся вокруг звезды. Особенную популярность у студентов завоевала одна из планет, которую они назвали Астрия. К концу первого семестра начались разговоры о том, чтобы нарисовать карту на этой планете и населить ее живыми существами — астрийцами. Я подавил эти стремления в зародыше: семестр подходил к концу, и до экзаменов оставалось всего ничего. Да и осуществить идею было нереально — мои студенты были не настолько уж сильными программистами.

В любом случае 2DWORLD оказалась очень полезной программой, и работать с ней было невероятно интересно. Особенно мне запомнился процесс формирования галактики из хаотического скопления звезд. Короче говоря, я пришел к выводу, что проект удался и что я был прав, когда решил ограничить физическое пространство модели двумя измерениями. Благодаря этому студенты поняли, что такое настоящее моделирование.

Но самым ценным в этой работе, по-моему, было то, что кроме навыков программирования студентам пригодились познания в самых разных областях науки. Им пришлось изучить немало технической литературы. И, более того, чтобы дать им представление о том, как можно развивать подобные идеи, я заставил их прочесть «Флатландию» Эббота, «Случай во Флатландии» Хинтона и «Сферландию» Бюргера. Во всех этих научно-фантастических произведениях описаны модели двухмерной вселенной, населенной такими же двухмерными обитателями. Такое домашнее чтение должно было пробудить у студентов интерес к дальнейшему изучению этой темы.

В следующем семестре я хотел, чтобы мои студенты написали программу, моделирующую взаимодействие внутри пищевой цепочки, но они были так увлечены программой 2DWORLD, что я уступил и позволил им дальше работать над ней. За семестр они успели описать поверхность Астрии и даже создали модели одноклеточных организмов, живущих в воде. Некоторые из этих существ «пожирали» своих собратьев, так что моя задумка о пищевой цепочке все-таки осуществилась, хотя и не совсем так, как я рассчитывал. Должен признаться, к этому времени я и сам очень сильно увлекся. Частенько мы засиживались в лаборатории допоздна, наблюдая за тем, как крохотные создания скользят и мечутся в своем двухмерном мирке, охотясь друг на друга.

Но вскоре семестр закончился и начались экзамены. Я думал, что распрощаюсь с 2DWORLD по крайней мере до осени, но сразу после экзаменационной сессии ко мне пришли трое студентов, очень способные ребята. Им хотелось продолжить проект, и они даже нашли себе работу в городе, чтобы остаться здесь на лето. Один из них, четверокурсник с факультета биологии Уинстон Чен, хотел разработать более сложные модели живых организмов. Двое других студентов изучали программирование. Хью Ламберт мечтал создать «гибкую, многоцелевую систему запросов», которая позволила бы обмениваться информацией с 2DWORLD. Алиса Литтл предложила идею о том, как улучшить и ускорить работу программы. Энтузиазм ребят произвел на меня сильное впечатление, и я не смог им отказать. К тому же компьютер, на котором они собирались работать, все равно летом простаивал. Да я и сам был рад руководить проектом и дальше.