Built with Compose Multiplatform, targeting
- Desktop (Windows, Linux)
- Android 7.0+ (SDK 24+)
- Web (via Wasm)
- macOS/iOS if ever get an Apple dev account (have to notarize/staple binaries), for now only works as a web app thru Chrome/Firefox
Combine interactive designs ~ Geogebra
with vector graphics editor ~ Inkscape
and specific type of animations ~ Möbius transformations and possibly Lie sphere geometry
Note
This project is in beta
Live deployed here from the github-pages
branch.
Executables for Linux, Window and Android can be found in the assets attached to the latest release.
- From the latest release go to
assets
and downloadwindows.zip
- Unarchive it
- In folder
com.pierbezuhoff.dodeclusters
find filecom.pierbezuhoff.dodeclusters.exe
- Run it! That's it~ (it is bundled with JVM)
- From the latest release go to
assets
and downloadlinux.zip
- Unarchive it
- Go into folder
com.pierbezuhoff.dodeclusters/bin
, you'll find executable filecom.pierbezuhoff.dodeclusters
chmod +x
it and you can run it as./com.pierbezuhoff.dodeclusters
You can find the apk in the assets attached to the latest release.
Note
Bundled binaries are likely behind the web version
Ctrl + A
: quickly select/deselect everythingDelete
,Backspace
: delete selected objectsCtrl + V
: duplicate selected objectsCtrl + +
,Ctrl + =
;Ctrl + -
; mouse wheel: enlarge/shrink selected objectsCtrl + Z
: undoCtrl + Y
: redoEsc
: cancel any ongoing constructions
Important
Requires JDK 17
./gradlew :composeApp:run
./gradlew :composeApp:wasmJsBrowserDevelopmentRun
Build platform-dependent package (run thru Github Actions using corresponding OS):
./gradlew composeApp:createDistributable
output directory: composeApp/build/compose/binaries/main/app/
Same + use ProGuard to minify:
./gradlew composeApp:createReleaseDistributable
output directory: composeApp/build/compose/binaries/main-release/app/
Individually:
./gradlew packageReleaseMsi
./gradlew packageReleaseDmg
+ notarize/register (requires Apple dev acc)./gradlew packageReleaseDeb
output directory:composeApp/build/compose/binaries/main-release/app/
./gradlew wasmJsBrowserDistribution
output directory: composeApp/build/dist/wasmJs/productionExecutable/
./gradlew assembleDebug
output directory: composeApp/build/outputs/apk/debug/
To run applications built with Kotlin/Wasm in a browser, you need a browser supporting wasm garbage collection feature:
- For Chrome and Chromium-based browsers (Edge, Brave etc.), it should just work since version 119.
- For Firefox 120+ it should just work.
- For Firefox 119:
- Open
about:config
in the browser. - Enable javascript.options.wasm_gc.
- Refresh the page.
- Open
- For Safari it is NOT implemented as of now (October 2024), but it has been previewed.
- Relevant Wasm compatibility table.
For more information see https://kotl.in/wasm_help/.