All Projects → Esri → Cityengine Sdk

Esri / Cityengine Sdk

Licence: apache-2.0
CityEngine is a 3D city modeling software for urban design, visual effects, and VR/AR production. With its C++ SDK you can create plugins and standalone apps capable to execute CityEngine CGA procedural modeling rules.

Programming Languages

groovy
2714 projects
processing
702 projects
procedural
45 projects

Projects that are alternatives of or similar to Cityengine Sdk

Arcgis Appstudio Samples
Collection of samples available in AppStudio for ArcGIS desktop to learn and help build your next app.
Stars: ✭ 78 (-43.07%)
Mutual labels:  native-development, arcgis, cross-platform
Arcgis Pro Sdk
ArcGIS Pro SDK for Microsoft .NET is the new .NET SDK for the ArcGIS Pro Application.
Stars: ✭ 156 (+13.87%)
Mutual labels:  native-development, sdk, arcgis
Ios Pdk
Pinterest iOS SDK
Stars: ✭ 114 (-16.79%)
Mutual labels:  api, sdk
Fuif
Free Universal Image Format
Stars: ✭ 115 (-16.06%)
Mutual labels:  decoder, encoder
Wav
Battle tested Wav decoder/encoder
Stars: ✭ 139 (+1.46%)
Mutual labels:  decoder, encoder
Dualsense Windows
Windows API for the PS5 DualSense controller
Stars: ✭ 111 (-18.98%)
Mutual labels:  api, sdk
Twain Sdk
A cross-platform protocol sdk based on TWAIN.Provide the implementation of both desktop development and dynamic web development.
Stars: ✭ 111 (-18.98%)
Mutual labels:  sdk, cross-platform
Arcgis Pro Sdk Community Samples
ArcGIS Pro SDK for Microsoft .NET Framework Community Samples
Stars: ✭ 119 (-13.14%)
Mutual labels:  native-development, sdk
Go Sdk
A composable toolbox of libraries to build everything from CLIs to enterprise applications.
Stars: ✭ 103 (-24.82%)
Mutual labels:  api, sdk
Bbwebimage
A high performance Swift library for downloading, caching and editing web images asynchronously.
Stars: ✭ 128 (-6.57%)
Mutual labels:  decoder, encoder
Minijvm
Develop iOS Android app in java, Cross platform java virtual machine , the minimal jvm .
Stars: ✭ 127 (-7.3%)
Mutual labels:  3d, cross-platform
Swift Html Entities
HTML5 spec-compliant character encoder/decoder for Swift
Stars: ✭ 130 (-5.11%)
Mutual labels:  decoder, encoder
Neovim
Vim-fork focused on extensibility and usability
Stars: ✭ 49,389 (+35950.36%)
Mutual labels:  api, cross-platform
Airdcpp Webclient
Communal peer-to-peer file sharing application for file servers/NAS devices
Stars: ✭ 106 (-22.63%)
Mutual labels:  api, cross-platform
Iextrading4j
IEX Cloud open source API wrapper
Stars: ✭ 112 (-18.25%)
Mutual labels:  api, sdk
Flickr Sdk
Almost certainly the best Flickr API client in the world for node and the browser
Stars: ✭ 104 (-24.09%)
Mutual labels:  api, sdk
Sdk Js
Directus JS SDK — JavaScript Software Development Kit for Node and Browser
Stars: ✭ 117 (-14.6%)
Mutual labels:  api, sdk
Silk V3 Decoder
kn007's blog
Stars: ✭ 1,832 (+1237.23%)
Mutual labels:  decoder, encoder
Shopify Api Php
🚀 Shopify API Client for PHP
Stars: ✭ 100 (-27.01%)
Mutual labels:  api, sdk
Renderer
A shader-based software renderer written from scratch in C89
Stars: ✭ 1,366 (+897.08%)
Mutual labels:  3d, cross-platform

CityEngine SDK

This is the official site for the SDK of CityEngine, a 3D city modeling software for urban design, visual effects, and VR/AR production.

The CityEngine SDK can be used for the development of:

  1. Custom importers and exporters for CityEngine.

    This means the SDK enables you to develop CityEngine plugins to read or write additional 3D and image formats or your own proprietary 3D data format. A simple use case example is 3D printing where the STL geometry format is often needed. STL support is not provided out-of-the-box in CityEngine, but you can develop your own STL exporter as described below.

  2. 3D apps which need a procedural geometry engine.

    The core of CityEngine is its unique geometry generation engine, called Procedural Runtime (PRT). PRT takes as input an initial geometry and then applies a given rule package (= CGA rules authored in CityEngine) to generate more detailed 3D geometry as output. For example, PRT can generate - based on given rules - a 3D model of a building out of a parcel polygon. With the SDK you can integrate PRT in your own 3D applications taking full advantage of the procedural geometry generation without running CityEngine. An interesting use case example is Palladio, a plugin for SideFX’s Houdini software. Palladio includes PRT and therefore extends Houdini with the procedural geometry engine of CityEngine. Another use case example could be a specific cultural heritage 3D application which automatically generates detailed 3D models of temples based on input attributes.

The CityEngine SDK is free for non-commercial use. Commercial use requires at least one commercial license of the latest CityEngine version installed in the organization. Please refer to the licensing section below for more detailed licensing information.

Preamble

This document explains how to install the CityEngine SDK and how to work with the source-code examples contained in this repository. The CityEngine SDK is packaged into three parts:

  • This git repository with the example sources.
  • An archive per platform with the SDK binaries and documentation (whitepaper and API reference). The archives are attached to the repo release tags, see links below.
  • An archive with example data (e.g. rule packages and initial shapes).

The archives are available for download at the corresponding github release page. See installation instructions below for details.

CityEngine SDK Releases

Installation Instructions

  1. Clone or download this repository
  2. For the prt4cmd example download the SDK example data archive from the release page and unzip into the cloned repository into a "data" directory.

The final directory layout should look like this:

/cityengine-sdk/
    examples/...
    data/...

Examples

This repository contains a number of source code examples in the "examples" directory. Each example contains a README with detailed instructions how to build and use it:

  • prt4cmd: a simple command line utility to apply rule packages onto initial shapes and generate models.
  • stlenc: demonstrates how to write a custom encoder, in this case for the STL geometry format.
  • stldec: demonstrates how to write a custom decoder for the STL geometry format.

Related Projects

  • PyPRT: Python language bindings for the Procedural Runtime (PRT)
  • Palladio: CityEngine plugin for SideFX Houdini
  • Serlio: CityEngine plugin for Autodesk Maya
  • Vitruvio: CityEngine plugin for Epic Unreal Engine

General Software Requirements

Please note that the individual example READMEs may include further requirements.

All Platforms

  • To load custom encoders built with the latest SDK, CityEngine 2020.1 is required. For older versions of CityEngine an older version of the SDK might have to be used, see list above.
  • License for matching CityEngine, e.g. to author Rule Packages.
  • CMake 3.3 or later (http://www.cmake.org)

Windows

  • Windows 8.1 or 10 (64bit)
  • Required C++ compiler: Visual Studio 2019 with Toolset MSVC 14.23 or later
  • Required flags for extension libraries release mode: /bigobj /GR /EHsc /MD (use /MDd to debug)

macOS

  • macOS Sierra (10.12) or later
  • Required C++ compiler: Apple Clang 8.1 or later (i.e. XCode 8.3 or later)
  • Required flags for extension libraries: -std=c++14 -stdlib=libc++ -fvisibility=hidden -fvisibility-inlines-hidden -Wl,--exclude-libs,ALL

Linux

  • RedHat Enterprise Linux 7.x or compatible
  • Required C++ compiler: GCC 6.3 or later (RedHat Enterprise Linux DevToolSet 6.1)
  • Required flags for extension libraries: -std=c++14 -D_GLIBCXX_USE_CXX11_ABI=0 -march=nocona -fvisibility=hidden -fvisibility-inlines-hidden -Wl,--exclude-libs,ALL

Further Resources

Issues

Did you find a bug or do you want to request a new feature? Please let us know by submitting an issue.

Contributing

Anyone and everyone is welcome to contribute and to extend and improve the examples by sending us pull requests.

Licensing

Copyright (c) 2020 Esri

You may not use the content of this repository except in compliance with the following Licenses:

  1. All content in the "examples" directory tree is licensed under the APACHE 2.0 license. You may obtain a copy of this license at http://www.apache.org/licenses/LICENSE-2.0.
  2. All other content is licensed under the Esri Terms of Use (also see Product-Specific Terms of Use).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].