VisualAtom.jl

Unofficial Project: Generate the VisualAtom dataset using JuliaLang (within an hour).
Author AtelierArith
Popularity
5 Stars
Updated Last
9 Months Ago
Started In
April 2023

VisualAtom.jl Build Status

⚠️ This implementation is unofficial.

Description

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

Getting Started

Prerequisites

To use this Julia implementation, you will need:

Installation

  1. Clone this repository:
$ git clone https://github.com/AtelierArith/VisualAtom.jl.git
  1. Change directory into the repository:
$ cd VisualAtom.jl
  1. 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

Usage

⚠️ Make sure you have enough storage space (200GB).⚠️

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.

image

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 to learn more.

Another easy shortcut

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

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments