GithubHelp home page GithubHelp logo

peterzhousz / azul Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tudelft3d/azul

0.0 0.0 0.0 6.09 MB

3D city model viewer for Mac

License: GNU General Public License v3.0

Objective-C 0.85% Swift 7.49% Rich Text Format 0.07% C++ 89.09% Objective-C++ 2.18% Metal 0.32%

azul's Introduction

Icon azul

azul is a 3D viewer for macOS 10.13. It is intended for viewing 3D city models in (City)GML, CityJSON, OBJ, OFF and POLY. It supports loading multiple files, selecting objects by clicking them or selecting them in the sidebar, and browsing their attributes. It is currently pre-release software, but it is pretty stable and most datasets already work without problems. It is available under the GPLv3 licence.

Controls

  • Pan: scroll

  • Rotate: drag on (left) click, rotate on trackpad

  • Zoom: pinch on trackpad, drag on right click

  • Select: click on object (in view or sidebar)

  • Centre view: double click (in view or sidebar object), h or cmd+shift+h (to dataset centre)

  • New file (clear view): n or cmd+n

  • Open file (import): o or cmd+o

  • Load view (camera) parameters: l or cmd+l

  • Save view (camera) parameters: s or cmd+s

  • Copy selected object ids: c or cmd+c

  • Find objects: f or cmd+f

  • Show bounding box: b or cmd+shift+b

  • Show edges: e or cmd+shift+e

  • Show sidebar: cmd+ctrl+s

  • Go full screen: cmd+ctrl+f

  • Close window (quits): cmd+w

  • Quit: cmd+q

Download

You can download the latest stable release of azul in the releases page or from the App Store. If you want more information on how to compile it from source, see below.

Random3DCity

LOD2 example

The Hague

CityGML 2.0 sample dataset

Ettenheim

New York City

Technical details

azul is written in a mix of C++14, Swift 4, Objective-C 2 and Objective-C++. The core is written in C++, but it uses Apple's Metal for visualisation and SIMD for fast vector/matrix computations. It uses pugixml in order to parse XML, Niels Lohmann's JSON for Modern C++ library, and the CGAL Triangulation package to triangulate concave polygons for display.

Not implemented / ideas for the future

  • Removing (unloading) files
  • Toggle to hide objects
  • Improved search with live viewing of matching objects
  • Customising colours, more complex materials
  • Materials and textures (loaded from files)
  • Implicit representations
  • Shifting the rotation point out of the data plane
  • Using a rotation point at a visible object in the centre (good for zooming in and rotating)
  • Showing the data plane and rotation point
  • Animations when re-centering
  • Keyboard navigation
  • Multi-threaded file loading and ray shooting
  • QuickLook plug-in
  • Icon previews
  • iOS support

Compilation

We have included an Xcode 9 project to easily compile azul. Note that older versions of Xcode cannot compile Swift 4.

azul depends on the following libraries: Boost, CGAL, GMP, MPFR and pugixml. These can be easily obtained using Homebrew, but we provide bundled static versions of them for convenience.

Licence

azul is available under the GPLv3 licence.

azul's People

Contributors

kenohori 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.