Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
b6373dd
ENH: Stub package for Julia service running in Jupyter kernel.
epatters Nov 20, 2024
6512f24
WIP: Manage Jupyter kernel in a new Decapodes kernel.
epatters Nov 20, 2024
3c2c4e9
ENH: Make proper Julia package out of `AlgebraicJuliaService`.
epatters Nov 21, 2024
4b800d7
ENH: Demonstrate communication with Jupyter kernel from analysis.
epatters Nov 21, 2024
f4ce8d8
WIP first pass at decapodes simulation helpers
quffaro Nov 21, 2024
b0cc236
ENH: First cut at 2D PDE plot using EChart's heat map.
epatters Nov 21, 2024
33c1c14
ENH: Gracefully handle errors raised by Julia kernel.
epatters Nov 21, 2024
573a327
cleaning up decapodes code, added tests.
quffaro Nov 21, 2024
f6cb71b
WIP argument to json_string needs testing
quffaro Nov 21, 2024
b129e79
TST: Test JSON data for Decapodes diffusion equation.
epatters Nov 21, 2024
89ad403
wip world age problem during testing
quffaro Nov 21, 2024
adfe359
wip simulation tests work but frontend is blank.
quffaro Nov 22, 2024
d6fcb33
ENH: Animated heat map
quffaro Nov 23, 2024
e73bdc0
Fix typo in PDE plotting (#271)
jpfairbanks Nov 25, 2024
e94f15b
visualization works, initial conditions fixed
quffaro Nov 26, 2024
3265d74
BUILD: Loosen compat bounds for external libs in AlgJulia service.
epatters Nov 26, 2024
e2881f9
DOC: Add README for AlgebraicJulia service.
epatters Nov 26, 2024
4bc925b
PERF: Only run browser timer at 100 fps.
epatters Nov 26, 2024
9715f04
ENH: Display errors when Julia kernel fails to start or initialize.
epatters Nov 26, 2024
9ae5440
ENH: Show loading icon when the Julia simulation is running.
epatters Nov 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions packages/algjulia-service/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Files generated by invoking Julia with --code-coverage
*.jl.cov
*.jl.*.cov

# Files generated by invoking Julia with --track-allocation
*.jl.mem

# System-specific files and directories generated by the BinaryProvider and BinDeps packages
# They contain absolute paths specific to the host computer, and so should not be committed
deps/deps.jl
deps/build.log
deps/downloads/
deps/usr/
deps/src/

# Build artifacts for creating documentation generated by the Documenter package
docs/build/
docs/site/

# File generated by Pkg, the package manager, based on a corresponding Project.toml
# It records a fixed state of all packages used by the project. As such, it should not be
# committed for packages, but should be committed for applications that require a static
# environment.
Manifest.toml
33 changes: 33 additions & 0 deletions packages/algjulia-service/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name = "AlgebraicJuliaService"
uuid = "9ecda8fb-39ab-46a2-a496-7285fa6368c1"
license = "MIT"
authors = ["CatColab team"]
version = "0.1.0"

[deps]
ACSets = "227ef7b5-1206-438b-ac65-934d6da304b8"
CombinatorialSpaces = "b1c52339-7909-45ad-8b6a-6e388f7c67f2"
ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66"
Decapodes = "679ab3ea-c928-4fe6-8d59-fd451142d391"
DiagrammaticEquations = "6f00c28b-6bed-4403-80fa-30e0dc12f317"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
MLStyle = "d8e11817-5142-5d16-987a-aa16d5891078"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"

[compat]
ACSets = "0.2.21"
ComponentArrays = "0.15"
Decapodes = "0.5.6"
DiagrammaticEquations = "0.1.7"
Distributions = "0.25"
GeometryBasics = "0.4"
JSON3 = "1"
LinearAlgebra = "1"
MLStyle = "0.4"
OrdinaryDiffEq = "6"
StaticArrays = "1"
35 changes: 35 additions & 0 deletions packages/algjulia-service/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# AlgebraicJulia Service

This small package makes functionality from
[AlgebraicJulia](https://www.algebraicjulia.org/) available to CatColab,
intermediated by a Julia kernel running in the [Jupyter](https://jupyter.org/)
server. At this time, only a
[Decapodes.jl](https://github.com/AlgebraicJulia/Decapodes.jl) service is
provided. Other packages may be added in the future.

## Setup

1. Install [Julia](https://julialang.org/), say by using
[`juliaup`](https://github.com/JuliaLang/juliaup)
2. Install [Jupyter](https://jupyter.org/), say by using `pip` or `conda`
3. Install [IJulia](https://github.com/JuliaLang/IJulia.jl), which provides the
Julia kernel to Jupyter

At this stage, you should be able to launch a Julia kernel inside a JupyterLab.

Having done that, navigate to this directory and run:

```sh
julia --project -e 'import Pkg; Pkg.instantiate()'
```

## Usage

Navigate to this directory and run:

```sh
jupyter server --IdentityProvider.token="" --ServerApp.disable_check_xsrf=True --ServerApp.allow_origin="http://localhost:5173"
```

While the Jupyter server is running, the AlgebraicJulia service will be usable
by CatColab served locally.
6 changes: 6 additions & 0 deletions packages/algjulia-service/src/AlgebraicJuliaService.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module AlgebraicJuliaService

include("kernel_support.jl")
include("decapodes.jl")

end
Loading