Задача
Разработать веб-интерфейс на основе канваса (canvas), в котором пользователь сможет размещать и просматривать медиа-блоки разных форматов: анимированные изображения (GIF), видеофайлы и 3D-модели. Решение не предусматривает создание загрузчиков файлов - все медиа должны размещаться через существующую структуру данных.
Требования к функционалу
- Поддержка следующих форматов файлов: GIF, MP4, WebM, GLTF/GLB, OBJ.
- Каждый медиа-элемент должен отображаться внутри собственного блока (drag-and-drop движение опционально).
- Видео должны воспроизводиться без элементов управления плеером (autoplay, loop).
- 3D-модели должны отображаться с возможностью вращения мышью (используйте Three.js или аналоги).
- Канвас должен быть растянут на всю рабочую область, адаптируется под окно браузера.
Технические детали
- Фреймворк: Vue.js (Composition API).
- Отображение медиа исключительно через Canvas API (для 3D можно использовать вложенный WebGL-контекст).
- Каждый медиа-объект представляет себя как элемент DataFrame, данные берутся из тестового массива URL (ссылки заглушки).
Пожелания по UI
- Минимальный интерфейс: канвас + небольшая панель ввода (или чат-ботовая заглушка).
- Другие кнопки и панели инструментов не требуются.
Ожидаемый результат
Полностью рабочий пример на Vue.js, развернутый локально. Код должен быть чистым, использование TS опционально. Документация - комментарии в ключевых файлах.