Giter Site home page Giter Site logo

tracer's Introduction

Tracer - a Pythonic general ray-tracing package.

About
-----
Tracer is a ray-tracing engine and suite of tools focused on radiative heat transfer and optical simulations.

The motivation for writing tracer:
* Current solutions lack programmability and extensibility
* Even if you pay megabucks
* De-facto standard tools of the trade are non-free, so bugfixing
  etc. depends on someone else,
* Usability in the solution closest to our budget is poor, and no Linux
  port is available.

Tracer is written in Python, using NumPy and SciPy for the math side of things.

Status
------
The code is advanced enough to produce research. It is currently a programming
library. NO GUI yet.

DISCLAIMER: The documentation and installation is outdated, but he project is active! Doubts, need advice?: [email protected]

Current capablilities:
- Flat, parabolic, spherical, conical and quadric surfaces
- Specular and diffuse reflections with surface slope error
- BDRF
- Transparency and attenuation
- A bunch of results analysis tools
- Pillbox and Buie sunshape implementations
- Radiosity sytem solver for thermal emissions
- Basic parallel processing
- Kd-Tree acceleration structure
- Spectral simulations

Open-source python magic happens: if you want to do something, you can do it.

Installation
------------
LINUX:
Tested under Ubuntu 22 (running as WSL)

1) Prepare Linux: sudo apt update && sudo apt upgrade
2) Setup python environment
2.1) sudo apt install python3-venv
2.2) Create virtual environment: python3 -m venv .venv
2.3) Activate virtual environment: source ./.venv/bin/activate

3) (Optional) Install visualisation-dependencies (not required if running headless)
3.1) Install build dependencies: sudo apt install build-essential cmake
3.2) Install coin3d dependencies: sudo apt install libboost-all-dev xorg-dev libglu1-mesa-dev
3.3) Install coin3d
3.3.1) git clone --recurse-submodules https://github.com/coin3d/coin coin
3.3.2) sudo cmake -Hcoin -Bcoin_build -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DCOIN_BUILD_DOCUMENTATION=OFF
3.3.3) sudo cmake --build coin_build --target all --config Release -- -j4
3.3.4) sudo cmake --build coin_build --target install --config Release -- -j4
3.4) Install pivy: sudo apt install python3-pivy
3.5) Allow access to global pivy package:
3.5.1) nano ./.venv/pyvenv.cfg
3.5.2) Change: 'include-system-site-packages = false' to 'include-system-site-packages = true'

4) Clone Tracer repository
git clone https://github.com/casselineau/Tracer

5) Install python requirements from Tracer
5.1) Headless: pip install -r requirements_headless.txt
5.2) With visualisation: pip install -r requirements.txt


WINDOWS:
To run on MS Windows:
- Follow steps on this link to run a Linux distribution on windows: https://docs.microsoft.com/en-us/windows/wsl/install-win10
- Download Tracer packages from here
- Download an X Server for windows in order to render the images: https://sourceforge.net/projects/xming/
- Run the X Server Client
- Run Tracer
------------

Doubts, need advice?: [email protected]

tracer's People

Contributors

casselineau avatar e-marco avatar jx1a0 avatar yewang726 avatar

Stargazers

Ruben Nuñez avatar Think Solidification avatar Carmen-Ana Domínguez-Bravo avatar Pierre Haessig avatar

Watchers

John Pye avatar  avatar Think Solidification avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.