https://github.com/atelierarith/visualatom.jl
Unofficial Project: Generate the VisualAtom dataset using JuliaLang (within an hour).
https://github.com/atelierarith/visualatom.jl
fdsl julia julialang
Last synced: 4 months ago
JSON representation
Unofficial Project: Generate the VisualAtom dataset using JuliaLang (within an hour).
- Host: GitHub
- URL: https://github.com/atelierarith/visualatom.jl
- Owner: AtelierArith
- License: mit
- Created: 2023-04-28T10:17:47.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-02T13:07:35.000Z (about 3 years ago)
- Last Synced: 2025-09-09T13:45:52.085Z (10 months ago)
- Topics: fdsl, julia, julialang
- Language: Julia
- Homepage: https://atelierarith.github.io/VisualAtom.jl/stable/
- Size: 226 KB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VisualAtom.jl [](https://github.com/AtelierArith/VisualAtom.jl/actions/workflows/CI.yml?query=branch%3Amain)
:warning: This implementation is unofficial.
# Description
This repository contains [Julia](https://julialang.org/) implementation of [`visual_atomic_renderer/render_VisualAtom.py`](https://github.com/masora1030/CVPR2023-FDSL-on-VisualAtom/blob/47de71748abde6bd6568ee6e045ea23a047636da/visual_atomic_renderer/render_VisualAtom.py#L1-L130), originally implemented in Python. The original Python implementation can be found at [masora1030/CVPR2023-FDSL-on-VisualAtom](https://github.com/masora1030/CVPR2023-FDSL-on-VisualAtom)
# Getting Started
## Prerequisites
To use this Julia implementation, you will need:
- [Julia version](https://julialang.org/downloads/) ≥ 1.8
## Installation
1. Clone [this repository](https://github.com/AtelierArith/VisualAtom.jl):
```bash
$ git clone https://github.com/AtelierArith/VisualAtom.jl.git
```
2. Change directory into the repository:
```bash
$ cd VisualAtom.jl
```
3. Install the required Julia packages:
```console
$ julia --project=@. -e 'import Pkg; Pkg.instantiate()'
Activating project at `~/work/atelier_arith/VisualAtom.jl`
Precompiling project...
Progress [> ] 0/1
◓ VisualAtom
```
## Usage
⚠️ Make sure you have enough storage space (200GB).⚠️
Easy! Just run:
```console
$ 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.
### Tip
> `--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](https://docs.julialang.org/en/v1/manual/command-line-options/#Command-line-switches-for-Julia) to learn more.
### Another easy shortcut
Having trouble installing Julia? You can save yourself the trouble of installation by using a Docker container.
```console
$ 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`:
```console
$ 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:
```console
-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
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Acknowledgments
- 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](https://julialang.org/) and [its community](https://julialang.org/community/discourse/)
- ChatGPT-3.5/ChatGPT-4