Нам нужны твои мозги

Хотите расти как разработчик и найти крутую работу? Не протирайте штаны — займитесь Open Source проектами. Так легче всего попасть в лучшие команды разработчиков и положить себе в резюме настоящий проект, вместо нелепых «примеров кода». Но найти подходящий проект для участия сложно. Начинаются лень и отговорки, а за ними — отсутствие профессионального роста, критики по-настоящему крутых программистов, уныние и застой.

На Cult of Martians мы собираем интересные задачи для современных веб-программистов. Можно выбрать подходящую по сложности, продолжительности и специализации. Задачи не выдуманы «из воздуха» — каждая решает насущную проблему, и решить ее можно через создание нового Open Source проекта или улучшение существующего. Решайте задачи, прокачивайтесь, присылайте решение на оценку. Лучших могут пригласить к себе на работу компании, программистам которых понравится ваше решение.

Фронт: Добавить 3D-версию пространства OKLCH

Для уверенных в себе, задача на неделю

В нашем цветом миксере OKLCH мы показываем цветовое пространство OKLCH в виде 3-х срезов. Но само пространство трехмерное. Хочется добавить 3D-отображение с возможностью покрутить его мышкой.

Польза: строка в резюме с PR в популярный проект.

  1. Форкнуть проект.
  2. Написать скрипт, который бы генерировал 3D-объекты с пространством для охвата sRGB, P3 и Rec2020 используя culori (как мы это делаем при строительстве срезов).
  3. Сравнить пространство с набором срезов.
  4. Добавить в шапку сайта кнопку Show 3D space (для мобильной версии найти другое место).
  5. Использовать WebGL, чтобы отрендерить 3D-объект (выбрать нужный 3D-объект, в зависимости от настроек Show P3 и Show Rec2020).
  6. Добавить код, чтобы 3D-объект можно было вращать используя мышку и клавиатуру.
  7. Сделать так, чтобы JS-код для 3D-модели грузился только при её показе (не забыв добавить «крутилку» на время загрузки JS-бандла).
  8. Сохранять состояние, в URL вида ?3d.
  9. При изменении настроек Show P3 и Show Rec2020 нужно менять 3D-модель.
  10. Попробовать показывать срезы графиков L, C и H на 3D-модели.
  11. Отправить PR в проект.