CircuitJS1 Desktop Mod
Circuit Simulator переименован в 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, расположенных вне боковой панели.
Также пофиксил отображение окна печати.
Что касается разработки самого проекта, наконец был написан отдельный скрипт для его полной сборки и отладки.