This repository contains Julia implementation of visual_atomic_renderer/render_VisualAtom.py
, originally implemented in Python. The original Python implementation can be found at masora1030/CVPR2023-FDSL-on-VisualAtom
To use this Julia implementation, you will need:
- Julia version ≥ 1.8
- Clone this repository:
$ git clone https://github.com/AtelierArith/VisualAtom.jl.git
- Change directory into the repository:
$ cd VisualAtom.jl
- Install the required Julia packages:
$ julia --project=@. -e 'import Pkg; Pkg.instantiate()'
Activating project at `~/work/atelier_arith/VisualAtom.jl`
Precompiling project...
Progress [> ] 0/1
◓ VisualAtom
Easy! Just run:
$ julia --project=@. --procs auto run.jl
It will create a directory VisualAtom_dataset
by default and 1000 * 1000 images will be generated.
The following screenshot was captured while running on my iMac 2019 with --procs 16
.
If you are surprised by these results, you may want to consider moving from Python to Julia.
--procs {N|auto}
Integer value N launches N additional local worker processes "auto" launches as many workers as the number of local CPU threads (logical cores)
See Command-line switches for Julia to learn more.
Having trouble installing Julia? You can save yourself the trouble of installation by using a Docker container.
$ make && docker compose run --rm shell julia --procs auto run.jl
The entrypoint script run.jl
uses parallel processing via Distributed
module (Julia's standard library).
For those who want to run with multiple threads, use run_mt.jl
:
$ make && docker compose run --rm shell julia --threads auto run_mt.jl
You can adjust the number of threads using the -t
or --threads
option:
-t, --threads {N|auto} Enable N threads; "auto" currently sets N to the number of local
CPU threads but this might change in the future
This project is licensed under the MIT License. See the LICENSE file for details.
- The original Python implementation: https://github.com/masora1030/CVPR2023-FDSL-on-VisualAtom
- The authors of the CVPR 2023 paper for their novel work on the FDSL algorithm
- The authors of Perlin noise library for Python: https://github.com/caseman/noise
- JuliaLang and its community
- ChatGPT-3.5/ChatGPT-4