Giter VIP home page Giter VIP logo

framework's Introduction

Project status

Project is in maintenance mode: I decided to rewrite core logic using C++11 and add new features. That's why I started new project instead: https://github.com/reinterpretcat/utymap

Description

ActionStreetMap (ASM) is an engine for building real city environment dynamically using OSM data.

The main goal is to simulate a real city, including the following:

  • rendering of different models (e.g. buildings, roads, parks, rivers, etc.) using OSM data for given location and using terrain tiling approach.
  • rendering of non-flat world by using Data Elevation Model (DEM) files.
  • adding a character to the scene, which makes it capable to interact with the environment.
  • filling environment with people, cars, animals, which have realistic behaviour
  • using some external services to extend environment (e.g. weather, famous places, events, public transport schedule, etc.).
  • Multiplayer.

The engine can be used to build different 3D-games (like car simulations or GTA 2/3 ) or for some map tools on top of this framework (target is mobile devices). Actually, in this case the game world can be limited only by OSM maps which means that it will cover almost entire Earth. More info can be found here.

Internally, framework is decoupled from Unity3D as much as it's possible taking into account related performance impact. In theory, it can be ported to other platforms to build map data visualization application.

Used technologies: Unity3D, C# (JavaScript is possible for Unity scripting in Demo app), Reactive Extensions

Used source code of (If I missed something and you think is important to mention, let me know): Triangle.NET, Clipper, UniRx.

Structure

ActionStreetMap consists of two repositories:

  • Framework contains source code of ASM framework (Microsoft Visual Studio 2013 solution, .NET 3.5 as target platform, Unity is referenced via UnityEngine/ UnityEditor assemblies).
  • Demo contains source code of showcase (Unity project, ASM framework is referenced via assemblies).

Software architecture

ASM is built using Composition Root and Dependency Injection patterns and consists of the following projects:

  • ActionStreetMap.Infrastructure - contains classes which helps to build frameworks infrastructure (e.g. dependency injection container, file system API, etc.).
  • ActionStreetMap.Core contains classes of core map logic (e.g. map primitives, MapCSS parser and rules, scene classes).
  • ActionStreetMap.Maps contains OSM specific classes (e.g map data index, OSM data parser, element visitors).
  • ActionStreetMap.Explorer contains application specific logic (e.g. MapCSS declaration rules, model builders, has unity classes dependency).
  • ActionStreetMap.Unity contains platform specific code (uses conditional compilation symbols to implement platform specific features).
  • ActionStreetMap.Tests contains unit and integration tests. Also has Main function to run logic as console application (useful for profiling, debugging map specific code).

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.