From 83a9e08a0c786d305ab7562c01cfac00c54924ae Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Wed, 23 Oct 2024 12:53:24 -0400 Subject: [PATCH 01/15] Fixed DISPLAY error, added caching, concurrency check, and artifact uploading (just matching what Makie.jl does) --- .github/workflows/Documentation.yml | 56 ++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 7babb259e4..929a5e091a 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -7,28 +7,68 @@ on: tags: '*' pull_request: +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: julia-actions/setup-julia@latest + - name: Checkout + uses: actions/checkout@v4 + + # Install binary dependencies needed for GLMakie to run in a headless environment + # xvfb: Creates a virtual frame buffer to simulate a display + # libgl1, mesa-utils, freeglut3-dev, xorg-dev, libxrandr-dev, libxinerama-dev, libxcursor-dev, libxi-dev, libxext-dev: Required libraries for OpenGL rendering + - name: Install binary dependencies + run: sudo apt-get update && sudo apt-get install -y xvfb libgl1 mesa-utils freeglut3-dev xorg-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev + + - name: Install Julia + uses: julia-actions/setup-julia@latest with: version: '1' - - name: Install xvfb and OpenGL libraries - run: sudo apt-get update && sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev + + # Cache compiled artifacts and precompiled packages to speed up subsequent runs + # This caching configuration targets the most computationally expensive parts of Julia's environment: + # 1. ~/.julia/artifacts - Stores binary dependencies (e.g., external libraries) needed by Julia packages. + # 2. ~/.julia/compiled - Contains precompiled code for faster loading of Julia packages. + # We do not cache ~/.julia/environments or ~/.julia/packages to avoid caching potential outdated package sources. + - uses: julia-actions/cache@v2 + with: + key: "julia-deps-${{ runner.os }}-${{ hashFiles('**/Project.toml') }}-${{ hashFiles('**/Manifest.toml') }}" + restore-keys: | + julia-deps-${{ runner.os }}- + paths: + - ~/.julia/artifacts + - ~/.julia/compiled + + # Install Julia package dependencies for the documentation project - name: Install dependencies run: julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = ""; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + + # Build and deploy the documentation using xvfb to simulate a display for GLMakie + # xvfb-run: Runs Julia with a virtual display to support OpenGL rendering + # --server-args: Configures the virtual display resolution and color depth - name: Build and deploy env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token + GKSwstype: "100" # Specifies the workstation type for GR framework rendering, https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988/7 DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key - GKSwstype: "100" # https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988 - run: | - DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs/ --code-coverage=user docs/make.jl + run: > + DISPLAY=:0 xvfb-run --server-args="-screen 0 1024x768x24" \ + julia --project=docs/ --code-coverage=user docs/make.jl + + - name: Upload site as artifact + uses: actions/upload-artifact@v4 + with: + name: Docs build + path: ./docs/__site + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v4 with: file: lcov.info token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false + From b6d603a5b84143ed9b46556ab8367660bbb12700 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Wed, 23 Oct 2024 17:19:42 -0400 Subject: [PATCH 02/15] Added GITHUB_TOKEN secret back in --- .github/workflows/Documentation.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 929a5e091a..a4ebee29e2 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -54,6 +54,7 @@ jobs: env: GKSwstype: "100" # Specifies the workstation type for GR framework rendering, https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988/7 DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token run: > DISPLAY=:0 xvfb-run --server-args="-screen 0 1024x768x24" \ julia --project=docs/ --code-coverage=user docs/make.jl From 22bb9957c232cbe1b91f116931718ac70722d466 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Wed, 23 Oct 2024 18:37:35 -0400 Subject: [PATCH 03/15] changed caching to SciML version --- .github/workflows/Documentation.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index a4ebee29e2..df477a7f9f 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -7,6 +7,10 @@ on: tags: '*' pull_request: +permissions: + actions: write # Allows the workflow to delete old caches created by previous runs, ensuring efficient cache management and preventing the cache from growing indefinitely. https://github.com/julia-actions/cache?tab=readme-ov-file#cache-retention + contents: read + concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true @@ -29,23 +33,15 @@ jobs: with: version: '1' - # Cache compiled artifacts and precompiled packages to speed up subsequent runs - # This caching configuration targets the most computationally expensive parts of Julia's environment: - # 1. ~/.julia/artifacts - Stores binary dependencies (e.g., external libraries) needed by Julia packages. - # 2. ~/.julia/compiled - Contains precompiled code for faster loading of Julia packages. - # We do not cache ~/.julia/environments or ~/.julia/packages to avoid caching potential outdated package sources. + # Cache to speed up subsequent runs - uses: julia-actions/cache@v2 with: - key: "julia-deps-${{ runner.os }}-${{ hashFiles('**/Project.toml') }}-${{ hashFiles('**/Manifest.toml') }}" - restore-keys: | - julia-deps-${{ runner.os }}- - paths: - - ~/.julia/artifacts - - ~/.julia/compiled + token: "${{ secrets.GITHUB_TOKEN }}" + cache-name: "docs-cache" # Install Julia package dependencies for the documentation project - name: Install dependencies - run: julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = ""; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + run: julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = "https://pkg.julialang.org"; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' # Build and deploy the documentation using xvfb to simulate a display for GLMakie # xvfb-run: Runs Julia with a virtual display to support OpenGL rendering @@ -53,8 +49,8 @@ jobs: - name: Build and deploy env: GKSwstype: "100" # Specifies the workstation type for GR framework rendering, https://discourse.julialang.org/t/generation-of-documentation-fails-qt-qpa-xcb-could-not-connect-to-display/60988/7 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Required for permissions to deploy documentation DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token run: > DISPLAY=:0 xvfb-run --server-args="-screen 0 1024x768x24" \ julia --project=docs/ --code-coverage=user docs/make.jl @@ -72,4 +68,3 @@ jobs: file: lcov.info token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false - From 177070e11ebf28a655b46da94619d4d00c7c14df Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Wed, 23 Oct 2024 19:23:54 -0400 Subject: [PATCH 04/15] needed to cd into docs first during build --- .github/workflows/Documentation.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index df477a7f9f..8f257900b0 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -41,7 +41,7 @@ jobs: # Install Julia package dependencies for the documentation project - name: Install dependencies - run: julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = "https://pkg.julialang.org"; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + run: julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = ""; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' # Build and deploy the documentation using xvfb to simulate a display for GLMakie # xvfb-run: Runs Julia with a virtual display to support OpenGL rendering @@ -52,8 +52,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Required for permissions to deploy documentation DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key run: > - DISPLAY=:0 xvfb-run --server-args="-screen 0 1024x768x24" \ - julia --project=docs/ --code-coverage=user docs/make.jl + cd docs; + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project --color=yes makedocs.jl - name: Upload site as artifact uses: actions/upload-artifact@v4 From 4c1573a705a7662b0b2f1586b6cb86f4a75df0a6 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Wed, 23 Oct 2024 19:36:52 -0400 Subject: [PATCH 05/15] removed `cd`, just specifying docs path instead. Also set package server back to blank --- .github/workflows/Documentation.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 8f257900b0..9c34d82ab2 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -52,8 +52,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Required for permissions to deploy documentation DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key run: > - cd docs; - DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project --color=yes makedocs.jl + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' + julia --project=docs --color=yes --code-coverage=user docs/make.jl - name: Upload site as artifact uses: actions/upload-artifact@v4 From 0a70c286d51a23391a76f7f234ea5c85542d962f Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Fri, 25 Oct 2024 21:03:09 -0400 Subject: [PATCH 06/15] added xvfb-run to install deps step, because i think GLMakie needs a screen for precomp --- .github/workflows/Documentation.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 9c34d82ab2..01453b702f 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -41,7 +41,8 @@ jobs: # Install Julia package dependencies for the documentation project - name: Install dependencies - run: julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = ""; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' + run: > + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs/ -e 'ENV["JULIA_PKG_SERVER"] = ""; using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()' # Build and deploy the documentation using xvfb to simulate a display for GLMakie # xvfb-run: Runs Julia with a virtual display to support OpenGL rendering From 313124affafd0fa7d318dd5bcf6d47b8de36587c Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Fri, 25 Oct 2024 21:06:21 -0400 Subject: [PATCH 07/15] fixed upload location --- .github/workflows/Documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 01453b702f..eb91d8aa24 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -60,7 +60,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: Docs build - path: ./docs/__site + path: ./docs/build - uses: julia-actions/julia-processcoverage@v1 From 885fb059bea6141673470a7f3af1c9f256905fec Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Fri, 25 Oct 2024 23:03:18 -0400 Subject: [PATCH 08/15] turning off renderloop --- .../examples/interactive_brusselator_simulation.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index 14f51b33ff..a4793e1587 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -11,7 +11,7 @@ Let's again use the oscillating Brusselator model, extending the basic simulatio using Catalyst using OrdinaryDiffEq using GLMakie -GLMakie.activate!(inline = true, visible = false) # hide +GLMakie.activate!(renderloop = nothing) # hide # Define the Brusselator model brusselator = @reaction_network begin @@ -67,6 +67,7 @@ axislegend(ax, position = :rt) # Display the figure fig +nothing # hide ``` The plot shows the concentrations of species X and Y over time. Notice the oscillatory behavior characteristic of the Brusselator model. @@ -147,6 +148,7 @@ axislegend(ax, position = :rt) # Display the figure fig +nothing # hide ``` This plot will now update in real-time as you move the sliders, allowing for interactive exploration of the Brusselator's behavior under different conditions. (Note the figure above is not interactive, but for illustrative purposes to show what you should see locally.) @@ -155,7 +157,7 @@ This plot will now update in real-time as you move the sliders, allowing for int To gain more insight into the system's behavior, let's enhance our visualization by adding a phase plot, along with some other improvements: -```@example interactive_brusselator +```julia # Create the main figure fig = Figure(size = (1200, 800), fontsize = 18); @@ -231,7 +233,7 @@ colgap!(param_grid, 10) colgap!(ic_grid, 10) # Display the figure -#fig +fig ``` This will create a visualization with both time series and phase plots: From 19b444bc964b1f3c3464134cd97bb11b08861697 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Fri, 25 Oct 2024 23:14:32 -0400 Subject: [PATCH 09/15] just to rerun build workflow; xvfb failed randomly last run for some reason --- .../examples/interactive_brusselator_simulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index a4793e1587..99b606fb3b 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -11,7 +11,7 @@ Let's again use the oscillating Brusselator model, extending the basic simulatio using Catalyst using OrdinaryDiffEq using GLMakie -GLMakie.activate!(renderloop = nothing) # hide +GLMakie.activate!() # hide # Define the Brusselator model brusselator = @reaction_network begin From e3a982656d1b81ac00d947f0e80f4f211db2c2b3 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Mon, 28 Oct 2024 17:39:10 -0400 Subject: [PATCH 10/15] added `inline` back in, was previously obvioiusly just drawing to window --- .../examples/interactive_brusselator_simulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index 99b606fb3b..e2fd420f8a 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -11,7 +11,7 @@ Let's again use the oscillating Brusselator model, extending the basic simulatio using Catalyst using OrdinaryDiffEq using GLMakie -GLMakie.activate!() # hide +GLMakie.activate!(inline = true) # hide # Define the Brusselator model brusselator = @reaction_network begin From 6d93d6a20df60f4de51f5119684061c7e95d0b6a Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Mon, 28 Oct 2024 18:16:39 -0400 Subject: [PATCH 11/15] added upload args, also hopefully fixed plot embedding --- .github/workflows/Documentation.yml | 9 ++++++--- .../examples/interactive_brusselator_simulation.md | 2 -- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index eb91d8aa24..0aca26a80c 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -36,8 +36,7 @@ jobs: # Cache to speed up subsequent runs - uses: julia-actions/cache@v2 with: - token: "${{ secrets.GITHUB_TOKEN }}" - cache-name: "docs-cache" + cache-name: docs-cache # Install Julia package dependencies for the documentation project - name: Install dependencies @@ -59,8 +58,11 @@ jobs: - name: Upload site as artifact uses: actions/upload-artifact@v4 with: - name: Docs build + name: docs-artifact path: ./docs/build + retention-days: 2 + compression-level: 9 + overwrite: true - uses: julia-actions/julia-processcoverage@v1 @@ -69,3 +71,4 @@ jobs: file: lcov.info token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false + diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index e2fd420f8a..053ead2540 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -67,7 +67,6 @@ axislegend(ax, position = :rt) # Display the figure fig -nothing # hide ``` The plot shows the concentrations of species X and Y over time. Notice the oscillatory behavior characteristic of the Brusselator model. @@ -148,7 +147,6 @@ axislegend(ax, position = :rt) # Display the figure fig -nothing # hide ``` This plot will now update in real-time as you move the sliders, allowing for interactive exploration of the Brusselator's behavior under different conditions. (Note the figure above is not interactive, but for illustrative purposes to show what you should see locally.) From 79f205c278486f9b50a200aee8e29f447e6a79f4 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Mon, 28 Oct 2024 18:51:14 -0400 Subject: [PATCH 12/15] GFLW init error again; try again with no renderloop --- .../examples/interactive_brusselator_simulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index 053ead2540..2d5008aae4 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -11,7 +11,7 @@ Let's again use the oscillating Brusselator model, extending the basic simulatio using Catalyst using OrdinaryDiffEq using GLMakie -GLMakie.activate!(inline = true) # hide +GLMakie.activate!(inline = true, renderloop = nothing, visible = false) # hide # Define the Brusselator model brusselator = @reaction_network begin From 66ad0dc16a88d8fb88901e1c54aa227f2cd2daf6 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Mon, 28 Oct 2024 19:00:09 -0400 Subject: [PATCH 13/15] retry, xvfb failed randomly again. Should implement a retry step in future --- .github/workflows/Documentation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml index 0aca26a80c..71f647c56a 100644 --- a/.github/workflows/Documentation.yml +++ b/.github/workflows/Documentation.yml @@ -60,7 +60,7 @@ jobs: with: name: docs-artifact path: ./docs/build - retention-days: 2 + retention-days: 3 compression-level: 9 overwrite: true From 143abe7133a327dcb20ba71415d86ac7fc00865b Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Mon, 28 Oct 2024 19:16:10 -0400 Subject: [PATCH 14/15] set renderloop back to default --- .../examples/interactive_brusselator_simulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index 2d5008aae4..9e3275f449 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -11,7 +11,7 @@ Let's again use the oscillating Brusselator model, extending the basic simulatio using Catalyst using OrdinaryDiffEq using GLMakie -GLMakie.activate!(inline = true, renderloop = nothing, visible = false) # hide +GLMakie.activate!(inline = true, visible = false) # hide # Define the Brusselator model brusselator = @reaction_network begin From 1203980440a18108ecdc96b775c51f2d75daaa63 Mon Sep 17 00:00:00 2001 From: Jonathan Fischer PEPE Date: Mon, 28 Oct 2024 19:45:13 -0400 Subject: [PATCH 15/15] visible is true --- .../examples/interactive_brusselator_simulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md index 9e3275f449..053ead2540 100644 --- a/docs/src/model_simulation/examples/interactive_brusselator_simulation.md +++ b/docs/src/model_simulation/examples/interactive_brusselator_simulation.md @@ -11,7 +11,7 @@ Let's again use the oscillating Brusselator model, extending the basic simulatio using Catalyst using OrdinaryDiffEq using GLMakie -GLMakie.activate!(inline = true, visible = false) # hide +GLMakie.activate!(inline = true) # hide # Define the Brusselator model brusselator = @reaction_network begin