Трёхмерные. Почему в современных ОС не прижились 3D-интерфейсы?
В далеком 1999 году я писал для одного компьютерного журнала статью о продукте под названием Synapse от американского стартапа Objective Reality. Эти ребята создали прототип полноценного 3D-интерфейса для Linux на замену X Window System. За прошедшую с тех пор четверть века появлялось множество других проектов трехмерных интерфейсов, но ни один из них, как говорится, «не взлетел». Интересно, почему?
Synapse
Оглядываясь назад, можно сказать, что Synapse был отчасти данью моде: в конце 90-х стали доступны относительно бюджетные видеокарты с 3D-ускорителями на базе чипа Riva TNT или 3Dfx Voodoo3, и разработчики стремились использовать их возможности на полную катушку. Новый трехмерный интерфейс опирался на OpenGL и генерировал полигоны «на лету», используя ресурсы 3D-ускорителя для реализации в реальном времени таких эффектов, как тени и прозрачность, без дополнительной нагрузки на центральный процессор. Процессор при этом выполнял только обработку геометрии; растеризацию брал на себя 3D-ускоритель.
Для своей работы Synapse требовал наличие библиотеки Mesa и шрифтов FreeType: они входили в состав многих дистрибутивов Linux того времени, включая RedHat 6.0. Минимальные аппаратные требования были весьма скромны: Pentium 133 или его эквивалент, и 16 МБайт оперативной памяти. По объему дискового пространства подсистема Synapse занимала примерно столько же места, сколько стандартная X Window.
Навигация по 3D-интерфейсу осуществлялась при помощи обычной мыши, при этом использовался примерно тот же принцип, что и в процессе игры в Quake. Без нажатия кнопок курсор перемещался по экрану так же, как в 2D-интерфейсе. При нажатой средней кнопке пользователь двигался вдоль оси Z вперед и назад. Выбор объектов осуществлялся по щелчку левой клавиши мыши, как и в обычном интерфейсе, причем это работало независимо от того, насколько далеко находился объект, на который вы нажимаете. Если пользователь удерживал кнопку мыши и перетаскивал объект, то его перемещение происходило в плоскости, параллельной экрану, на том же расстоянии, что и точка, на которой он щелкнул первоначально.
Тем не менее многие пользователи никак не могли взять в толк, зачем ставшему привычным еще со времен Дугласа Энгельбарта оконному интерфейсу 3D? Разработчики из Objective Reality объясняли это так: в Synapse окна можно сложить в стопку на краю экрана, при этом их названия будут отображаться на торцевой стороне. Вы разворачиваете окно, когда используете его, и убираете вглубь экрана, когда не используете, при этом оно всегда находится под рукой.
Естественно, стандартные Linux-приложения не умели работать с Synapse, поддержка X-фреймбуфера на момент появления бета-версии продукта была в проекте. К сожалению, эти грандиозные планы так и остались планами: уже через год, весной 2000-го, официальный сайт Objective Reality выглядел вот так.
Project Looking Glass
Практически аналогичный по своей сути интерфейс под названием Project Looking Glass представила Sun Microsystems в 2003 году — буквально через пару лет после закрытия проекта Synapse. Project Looking Glass — это трехмерная среда Рабочего стола (3D desktop environment) для Linux, Solaris и Windows, распространявшаяся под свободной лицензией GPL.
Этот продукт был написан на языке Java с использованием системы Java 3D, поэтому получился платформенно-независимым: такой интерфейс можно было развернуть практически на любой операционной системе с поддержкой Java.
Вообще, первую версию Project Looking Glass написал программист Sun Хидея Кавахара в свободное от работы время на своем личном ноутбуке с Linux. После того как он продемонстрировал прототип руководству компании, ему поручили разработку этого интерфейса на полную ставку и даже наняли для этого отдельную группу сотрудников. В отличие от более раннего Synapse, в Project Looking Glass использовалась панель со значками приложений, очень похожая на Dock в ранних версиях macOS X. Именно это и послужило основной причиной претензий к Sun Microsystems со стороны Apple: первая версия Project Looking Glass была продемонстрирована на конференции LinuxWorld Expo в 2003 году, после чего Стив Джобс позвонил генеральному директору Sun Джонатану Шварцу и сообщил, что этот интерфейс нарушает интеллектуальные права Apple, и если Sun Microsystems продолжит развивать Project Looking Glass как коммерческий продукт, то Apple подаст на компанию в суд. Так трехмерный интерфейс от Sun стал программным обеспечением с открытым исходным кодом — судебные разбирательства не нужны никому.
В отличие от обычного 2D-интерфейса, в Project Looking Glass пользователь мог поворачивать окна на произвольный угол, разворачивать их «спиной вперед» и даже писать заметки на их обратной стороне. Интерфейс от Sun объединил в себе множество инновационных решений, которые воплотились позже в других операционных системах: псевдотрехмерную панель значков, как две капли воды похожую на панель Dock в macOS X Leopard, скрытие однотипных окон приложений в «стопку», что позже было реализовано в Windows 7, возможность размещать мини-приложения на отдельном виртуальном Рабочем столе — функция, аналогичная Dashboard в той же macOS.
Sun Microsystems выпустила LiveCD, загружавшийся сразу в интерфейс Project Looking Glass, также этот трехмерный оконный менеджер поставлялся в качестве дополнительной опции к дистрибутиву Granular Linux. Но в целом проект так и оставался экспериментальным, и в связи с ухудшением финансовых показателей Sun в 2007 году был упразднен.
Croquet
Несмотря на возможность работать с окнами приложений в трех измерениях, в основе и Synapse, и Project Looking Glass лежала парадигма традиционного Рабочего стола. В то время как созданный в 2004 году группой энтузиастов проект Croquet использовал идею «виртуального трехмерного пространства» для взаимодействия с приложениями.
Croquet был написан на Squeak Smalltalk и имел открытый исходный код. Создатели проекта делали упор на многопользовательские онлайн-приложения, подразумевающие совместное использование ресурсов и распределенные вычисления для обсчета графических объектов. Фактически, это был не трехмерный пользовательский интерфейс для операционной системы, а комплект средств разработки ПО (SDK), позволявший создавать 3D-окружение для образовательных проектов, программ поддержки командной работы и онлайн игр.
Приложения в среде Croquet запускались в специальной виртуальной машине, использовали общий протокол, позволяющий им взаимодействовать друг с другом на основе принципа реплицированных вычислений (синхронизации). Для обмена сообщениями между пользователями и программами применялся отдельный протокол. Визуально Croquet представлял собой виртуальное трехмерное пространство, по которому мог перемещаться пользователь, а приложения в нем выглядели как отдельные объекты, с которыми он мог взаимодействовать.
Изначально разработку Croquet финансировал ряд университетов и крупных компаний, включая Hewlett-Packard, позже на основе опенсорсного движка Croquet было создано несколько коммерческих продуктов в сфере виртуальной реальности. Но мейнстримом такой замысловатый пользовательский интерфейс так и не стал.
TaskGallery
Еще один похожий проект назывался TaskGallery, и разрабатывался он командой Microsoft Research еще в 2000 году. Этот экспериментальный интерфейс эксплуатировал образ «комнаты», различные объекты в которой представляли собой значки, окна приложений и виджеты. Программы здесь выглядят как произведения искусства, развешанные на стенах виртуальной картинной галереи, а выбранная задача, с которой в данный момент взаимодействует пользователь, размещается на центральной сцене. Пользователь мог переключаться между программами при помощи мыши (для этого использовалась панель со стрелками в левой нижней части экрана), перемещать окна в различных плоскостях, разворачивать и управлять ими по мере необходимости. Вот в этой видео-презентации от Microsoft показан прототип TaskGallery и продемонстрированы его возможности.
В TaskGallery можно было запустить любое приложение Windows: для этого использовался специальный механизм, который перенаправлял ввод и вывод между 3D-средой GUI и немодифицированными 2D-приложениями этой ОС. К сожалению, в 2000 году такой интерфейс оказался чересчур непривычным и ресурсоемким для большинства пользователей продукции Microsoft. Всё, что от него осталось — это красивый трехмерный переключатель Flip3D в Windows Vista, который позже почему-то безжалостно выпилили, о чём лично я очень сожалел.
Выводы
К сожалению, или, возможно, к счастью, ни один из этих проектов так и не добился популярности. Причин тому несколько, и основная среди них — сложность восприятия. Не все пользователи могут комфортно воспринимать 3D-графику, не у всех одинаково хорошо развито пространственное мышление, а длительное использование такого интерфейса может вызывать усталость глаз и головные боли. Во-вторых, развитие техники в то время, когда возникали подобные проекты, еще не достигло достаточно высокого уровня: 3D-интерфейсы были ресурсоёмкими, а видеокарты с 3D-ускорителями стоили слишком дорого и отсутствовали в обычных «офисных компьютерах».
Еще один фактор — недостаточная поддержка: без большого количества приложений или игр, поддерживающих 3D-интерфейс, технология не смогла завоевать рынок. Наконец, подобные интефрейсы часто оказывались менее удобными по сравнению с традиционным и привычным Рабочим столом, а пользователи плохо привыкают к новому (провал Windows 8 с новаторским «плиточным» интерфейсом — наглядный тому пример). Именно поэтому практически все подобные разработки, несмотря на их инновационность, не смогли преодолеть барьер для массового использования, и традиционные 2D-интерфейсы всё ещё остаются незыблемым мировым стандартом.
Статья поддерживается командой Serverspace.Serverspace — провайдер облачных сервисов, предоставляющий в аренду виртуальные серверы с ОС Linux и Windows в 8 дата-центрах: Россия, Беларусь, Казахстан, Нидерланды, Турция, США, Канада и Бразилия. Для построения ИТ-инфраструктуры провайдер также предлагает: создание сетей, шлюзов, бэкапы, сервисы CDN, DNS, объектное хранилище S3.
IT-инфраструктура | Удвоение первого платежа по коду HABR