Skip to content

Can't create json animation files on mac #124

@glen99pl

Description

@glen99pl

Modia3D is installed on my mac. It runs the tutorial and generates 2D plots (PyPlot and GLMakie), but I can’t generate 3D animations (json) for display in threejs.org.

I’ve tried many of the tutorials and tests (I know not all are supposed to generate a json file). So far, only the following have produced a json file:

  • NewtonsCradle
  • BouncingCones
  • BouncingCapsules

However, the json files that are created don’t display properly in threejs.org. As an example, I’ve attached the json file and a short threejs animation screen capture for NewtonsCradle.

I’m not trying to use DLR_VISUALIZATION. (Library not available for mac.)

Not sure if it is related, but I get errors when I try to add the ModiaPlot_GLMakie package. Terminal output is at the below (at the end).

Here is how I’ve run the simulations:

julia> ENV["SignalTablesPlotPackage"] = "PyPlot"
"PyPlot"

julia> import Modia3D;

... Info: ENV["DLR_VISUALIZATION"] is not defined.
Therefore, no online renderer is used in Modia3D.

... Info: No renderer found -> online visualization is disabled.

julia> include("$(Modia3D.path)/test/Collision/NewtonsCradle.jl")

Instantiating model Cradle
in module: Main.NewtonsCradle
in file: /Users/glenc/.julia/packages/Modia3D/AQjsp/test/Collision/NewtonsCradle.jl:84

... Simulate model Cradle
Initialization at time = 0.0 s
Modia3D: nVisualShapes = 5
mprTolerance = 1.0e-20
contact_eps = 1.0e-13
Initialization finished within 12.066346 seconds (19.45 M allocations: 1.192 GiB, 3.89% gc time, 99.32% compilation time: 2% of which was recompilation)
Export animation to NewtonsCradle.json ... done.
Termination of Cradle at time = 5.0 s
initCpuTime = 12.1 s
simCpuTime = 3.08 s
initAlloc = 1280.0 MB
simAlloc = 406.0 MB
FloatType = Float64
algorithm = CVODE_BDF (ODE integrator)
startTime = 0.0 s
terminationTime = 5.0 s
interval = 0.01 s
tolerance = 1.0e-8 (relative tolerance)
nStates = 10
nResults = 885
nf_total = 36289 (total number of getDerivatives! calls)
nf_integrator = 15203 (number of getDerivatives! calls from integrator)
nf_zeroCrossings = 20103 (number of getDerivatives! calls for zero crossing detection)
nJac = missing (number of Jacobian computations)
nAcceptedSteps = missing
nRejectedSteps = missing
nTimeEvents = 0
nStateEvents = 96
nRestartEvents = 96
linearSystemsSizes = [5]
linearSystemsRecFac = [false] (= true, if LU with RecursiveFactorization.jl)
linearSystemsOdeMode = [true]
using SignalTablesInterface_PyPlot
Main.NewtonsCradle

julia>

Julia info and packages:

julia> versioninfo()
Julia Version 1.9.3
Commit bed2cd540a1 (2023-08-24 14:43 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: macOS (x86_64-apple-darwin22.4.0)
CPU: 10 × Apple M1 Pro
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-14.0.6 (ORCJIT, westmere)
Threads: 1 on 10 virtual cores
Environment:
JULIA_EDITOR = code
JULIA_NUM_THREADS =

julia> Pkg.status()
Status ~/.julia/environments/v1.9/Project.toml
[717857b8] DSP v0.7.9
[7a1cc6ca] FFTW v1.7.1
[9c8b4983] LightXML v0.9.0
⌅ [ee78f7c6] Makie v0.17.13
[cb905087] Modia v0.12.0
[07f2c1e0] Modia3D v0.12.1
[59e4e452] ModiaPlot_PyPlot v0.4.1
[d330b81b] PyPlot v2.11.2
[295af30f] Revise v3.5.6
[ddbd5806] SignalTablesInterface_GLMakie v0.1.2
[a24218ac] SignalTablesInterface_PyPlot v0.1.3
[de0858da] Printf
[10745b16] Statistics v1.9.0
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use status --outdated

Error trying to add ModiaPlot_GLMakie:

julia> Pkg.add("ModiaPlot_GLMakie")
Updating registry at ~/.julia/registries/General.toml
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package GLMakie [e9467ef8]:
GLMakie [e9467ef8] log:
├─possible versions are: 0.0.1-0.8.11 or uninstalled
├─restricted by compatibility requirements with SignalTablesInterface_GLMakie [ddbd5806] to versions: 0.6.0-0.6.13
│ └─SignalTablesInterface_GLMakie [ddbd5806] log:
│ ├─possible versions are: 0.1.0-0.1.2 or uninstalled
│ └─restricted to versions * by an explicit requirement, leaving only versions: 0.1.0-0.1.2
└─restricted by compatibility requirements with ModiaPlot_GLMakie [16bb567d] to versions: [0.1.30-0.2.9, 0.4.0-0.5.5] — no versions left
└─ModiaPlot_GLMakie [16bb567d] log:
├─possible versions are: 0.1.0-0.4.0 or uninstalled
└─restricted to versions * by an explicit requirement, leaving only versions: 0.1.0-0.4.0
Stacktrace:
[1] propagate_constraints!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; log_events::Bool)
@ Pkg.Resolve /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Resolve/graphtype.jl:1072
[2] propagate_constraints! (repeats 2 times)
@ /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Resolve/graphtype.jl:1008 [inlined]
[3] simplify_graph!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; clean_graph::Bool)
@ Pkg.Resolve /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Resolve/graphtype.jl:1533
[4] simplify_graph! (repeats 2 times)
@ /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Resolve/graphtype.jl:1532 [inlined]
[5] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber, installed_only::Bool)
@ Pkg.Operations /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:408
[6] targeted_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
@ Pkg.Operations /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1357
[7] tiered_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber, try_all_installed::Bool)
@ Pkg.Operations /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1346
[8] _resolve(io::Base.TTY, env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
@ Pkg.Operations /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1367
[9] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
@ Pkg.Operations /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1384
[10] add
@ /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1373 [inlined]
[11] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
@ Pkg.API /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:275
[12] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Pkg.API /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:156
[13] add(pkgs::Vector{Pkg.Types.PackageSpec})
@ Pkg.API /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:145
[14] #add#25
@ /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:144 [inlined]
[15] add
@ /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:144 [inlined]
[16] #add#24
@ /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:143 [inlined]
[17] add(pkg::String)
@ Pkg.API /Applications/Julia-1.9.app/Contents/Resources/julia/share/julia/stdlib/v1.9/Pkg/src/API.jl:143
[18] top-level scope
@ REPL[9]:1

NewtonsCradle outputs.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions