Приветствую всех, кто каким-то чудом нашел этот блог. Формат данного блога свободный и в нем я стараюсь делиться различными полезностями, размышлениями о различных событиях, своим творчеством.

CircuitJS1 Desktop Mod

Circuit Simulator переименован в CircuitJS1 Desktop Mod

CircuitJS1 Desktop Mod

CircuitJS1 Desktop Mod - это симулятор электронных схем. Программа позволяет визуализировать электрические явления в электронных цепях, давая ощущение игры с реальными компонентами.

В техническом плане программа представляет собой мой вариант десктопной (офлайн) версии веб приложения circuitjs1 с небольшими модификациями, который использует модифицированную версию фреймворка (браузерной оболочки) nw.js. Исходный код самого веб приложения для этой программы мной изменяется незначительно и основная моя работа сводится к переводу этой программы на русский язык.

Программа предлагается к использованию в исключительно образовательных целях для изучения работы электрических цепей и их элементов. Не рекомендуется использовать программу для моделирования реальных схем, так как в программе идеализированы многие компоненты (подробно об этом написано в Файл->Помощь->Моделирование - не реальность).

Лицензия: GNU General Public License version 2

Платформы: Windows (x32, x64), Linux (x32, x64), MacOS (x64, arm64)

Размер файла: 50-80 Мб для скачивания, 180-210 Мб требуется для установки (распаковки)

Языки: Английский, Русский, Датский, Немецкий, Польский, Испанский, Французкий, Итальянский, Португальский, Чешский, Норвежсккий, Китайский, Японский

Ссылка на скачивание: https://github.com/SEVA77/circuitjs1/releases

Исходный код: https://github.com/SEVA77/circuitjs1


Изменения, примечания разработчика

Несмотря на то, что основные разработчики довели до ума свой вариант десктопной версии программы, я продолжу поддерживать этот вариант программы. У меня были планы полностью переделать пользовательский интерфейс и изменить поведение программы в части рисования схемы, однако в таком случае будет сложно поддерживать развитие программы параллельно с развитием веб приложения. Поэтому в дальнейшем данная программа не будет сильно отличаться от веб приложения основных разработчиков, а любые изменения от себя, которые не относятся к адаптации под nw.js оболочку (типа недавнего встраивания иконок в меню), буду добавлять уже непосредственно в репозиторий веб приложения основных разработчиков.

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


Версия 1.2.1 (29.11.2020)

Обновил веб приложение circuitjs1 до версии 2.2.18js, основные изменения которой (по сравнению с 2.2.7js) заключаются в добавлении поддержки еще четырех языков, добавлении схем импульсных преобразователей, новых элементов (кварцевый резонатор, генератор шума, статическая RAM), дополнительных настроек для осциллографов и мн.др.

От себя добавил возможность открывать несколько новых окон, оптимизировал приложение под (в основном) большие и маленькие экраны ну и, конечно же, обновил русский язык.


Версия 1.2.2 (02.10.2021)

Обновил веб приложение circuitjs1 до версии 2.5.7js (изменения).

От себя я мало что менял. В основном исправил ошибки и немного пофиксил отображение клавиш за основного разработчика, о чем я уже с ним говорил. Как обычно обновил русский язык.

А, и еще обновил саму оболочку NW.js до версии 0.20.0. Более старые версии лагают, т.к. основной разраб что-то сделал с оптимизацией симуляции. Зато теперь при больших скоростях симуляции оболочка не фризит и вы любую схему можете пробовать включать на больших скоростях симуляции.

Самая большая работа была проделана над самим репозиторием программы. Теперь репозиторий переделан под Maven проект, что позволяет работать с ним в любом IDE, а не только в Eclipse.


Версия 1.2.3 (04.10.2022)

Обновил веб приложение circuitjs1 до версии 2.7.1js (изменения).

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

Для более лучшей работы с GPU включил следующие флаги оболочки: --ignore-gpu-blacklist, --enable-gpu-rasterization, --force-gpu-rasterization, --enable-zero-copy.

Добавил дополнительный ярлык в установщике для Windows с припиской “(disable gpu)” для слабых ПК. По сути это запуск приложения с флагом --disable-gpu.

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


Версия 1.2.4 (03.08.2023)

Обновил веб приложение circuitjs1 до версии 2.8.1js (изменения).

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

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

Программа была переименована из Circuit Simulator в CircuitJS1 Desktop Mod чтобы наконец исключить путаницу с основным проектом с таким же названием, особенно учитывая отдельное версионирование. Переименовывать свой проект планировал после крупного релиза с более крупными модификациями и с собственной модифицированной версией nw.js, но в итоге с новым названием решил не тянуть.

Для самого проекта удалось настроить devmode, но пока не совсем полноценный (не реагирует на изменения в папке war).


Версия 1.2.5 (15.08.2023)

Пофиксил отображение кнопки Run/Stop для Windows 7.


Версия 1.3.0 (29.06.2024)

Обновил веб приложение circuitjs1 до версии 2.9.0js (изменения).

Пожалуй самое важное - пересадил программу на собственную, модифицированную версию движка nw.js. Нормальное, уже не рваное отображение интерфейса, нормальная прорисовка шрифтов в linux, наконец работающая загрузка аудиофайлов в “аудиовход” - заслуга исключительно новой версии движка.

От себя сделал меню модификаций (Опции -> Modification Setup…) с возможностью изменять масштаб интерфейса, размер верхней панели и стиля кнопок run/stop и reset, расположенных вне боковой панели.

Также пофиксил отображение окна печати.

Что касается разработки самого проекта, наконец был написан отдельный скрипт для его полной сборки и отладки.