From 3045af0d9d81b7107e4298f9bad9d48a750e35b0 Mon Sep 17 00:00:00 2001 From: Rostyslav Hnatyshyn Date: Fri, 16 Feb 2024 18:48:37 -0700 Subject: [PATCH] update readme, cabal build --- .gitignore | 2 ++ README.md | 5 ++++ out.png | Bin 0 -> 71184 bytes stack.yaml | 67 ------------------------------------------- wasm-raytracer.cabal | 31 ++++++++++---------- 5 files changed, 23 insertions(+), 82 deletions(-) create mode 100644 .gitignore create mode 100644 out.png delete mode 100644 stack.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d284453 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.git/ +dist-newstyle/ diff --git a/README.md b/README.md index 8b4fb6d..b0eb5b3 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ # wasm-raytracer + +Raytracer written in Haskell. Slow and currently only supports one static scene. +Run `cabal build && cabal exec raytracer-exe > img.ppm`. + +![Image of the output](out.png "Output") diff --git a/out.png b/out.png new file mode 100644 index 0000000000000000000000000000000000000000..4b5be3fa4c67b90a95f2392e18151c3612d8b5d5 GIT binary patch literal 71184 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.7" -# -# Override the architecture used by stack, especially useful on Windows -# arch: i386 -# arch: x86_64 -# -# Extra directories used by stack for building -# extra-include-dirs: [/path/to/dir] -# extra-lib-dirs: [/path/to/dir] -# -# Allow a newer minor version of GHC than the snapshot specifies -# compiler-check: newer-minor diff --git a/wasm-raytracer.cabal b/wasm-raytracer.cabal index 934005f..5e17968 100644 --- a/wasm-raytracer.cabal +++ b/wasm-raytracer.cabal @@ -4,15 +4,13 @@ cabal-version: 1.12 -- -- see: https://github.com/sol/hpack -name: wasm-raytracer +name: haskell-raytracer version: 0.1.0.0 description: Please see the README on GitHub at -homepage: https://github.com/githubuser/wasm-raytracer#readme -bug-reports: https://github.com/githubuser/wasm-raytracer/issues -author: Author name here -maintainer: example@example.com -copyright: 2022 Author name here -license: BSD3 +homepage: https://git.rshyn.site/rostyhn/haskell-raytracer +bug-reports: https://git.rshyn.site/rostyhn/haskell-raytracer +author: Rostyslav Hnatyshyn +copyright: N/A license-file: LICENSE build-type: Simple extra-source-files: @@ -21,15 +19,18 @@ extra-source-files: source-repository head type: git - location: https://github.com/githubuser/wasm-raytracer + location: https://git.rshyn.site/rostyhn/haskell-raytracer library exposed-modules: Hittable Maths + IOUtils + Material + Camera Ray other-modules: - Paths_wasm_raytracer + Paths_haskell_raytracer hs-source-dirs: src build-depends: @@ -40,10 +41,10 @@ library , random default-language: Haskell2010 -executable wasm-raytracer-exe +executable raytracer-exe main-is: Main.hs other-modules: - Paths_wasm_raytracer + Paths_haskell_raytracer hs-source-dirs: app ghc-options: -threaded -rtsopts -with-rtsopts=-N @@ -53,14 +54,14 @@ executable wasm-raytracer-exe , linear , mtl , random - , wasm-raytracer + , haskell-raytracer default-language: Haskell2010 -test-suite wasm-raytracer-test +test-suite raytracer-test type: exitcode-stdio-1.0 main-is: Spec.hs other-modules: - Paths_wasm_raytracer + Paths_haskell_raytracer hs-source-dirs: test ghc-options: -threaded -rtsopts -with-rtsopts=-N @@ -70,5 +71,5 @@ test-suite wasm-raytracer-test , linear , mtl , random - , wasm-raytracer + , haskell-raytracer default-language: Haskell2010