# ngworld

> VR from an Angular app

Latest version **0.0.15** (published 2018-10-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install ngworld
pnpm add ngworld
yarn add ngworld
bun add ngworld
```

Provides the command `ngworld`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.15 |
| Published | 2018-10-09 |
| First published | 2017-04-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 16 |
| Unpacked size | 5.7 MB |
| Known vulnerabilities | 0 (+14 in 2 direct dependencies) |
| Install scripts | no |
| Author | Minko Gechev |
| Maintainers | mgechev |
| Keywords | vr, angular, compiler |

## Links

- npm: https://www.npmjs.com/package/ngworld
- npm.io page: https://npm.io/package/ngworld

## Dependencies (16)

- [ncp](https://npm.io/package/ncp.md) ^2.0.0
- [rxjs](https://npm.io/package/rxjs.md) ^6.0.0
- [chalk](https://npm.io/package/chalk.md) ^1.1.3
- [ngast](https://npm.io/package/ngast.md) 0.2.2
- [aframe](https://npm.io/package/aframe.md) ^0.8.2
- [ts-node](https://npm.io/package/ts-node.md) ^4.0.0
- [zone.js](https://npm.io/package/zone.js.md) ^0.8.16
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [mustache](https://npm.io/package/mustache.md) ^2.3.0
- [typescript](https://npm.io/package/typescript.md) ^3.1.0
- [http-server](https://npm.io/package/http-server.md) ^0.11.1
- [@angular/core](https://npm.io/package/@angular/core.md) ^7.0.0-rc.0
- [aframe-extras](https://npm.io/package/aframe-extras.md) ^3.3.4
- [@angular/compiler](https://npm.io/package/@angular/compiler.md) ^7.0.0-rc.0
- [@angular/compiler-cli](https://npm.io/package/@angular/compiler-cli.md) 7.0.0-rc.0
- [aframe-controller-cursor-component](https://npm.io/package/aframe-controller-cursor-component.md) ^0.2.7

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 0.0.15 (latest) — 2018-10-09
- 0.0.14 — 2018-10-06
- 0.0.13 — 2017-12-24
- 0.0.23-xmas — 2017-12-24
- 0.0.21-xmas — 2017-12-24
- 0.0.19-xmas — 2017-12-24
- 0.0.17-xmas — 2017-12-23
- 0.0.12 — 2017-12-23
- 0.0.15-xmas — 2017-12-23
- 0.0.11 — 2017-12-23
- 0.0.11-xmas — 2017-12-23
- 0.0.10 — 2017-12-23
- 0.0.9-xmas — 2017-12-23
- 0.0.7-xmas — 2017-12-23
- 0.0.6 — 2017-06-19
- … 5 more at https://npm.io/package/ngworld/versions

## README

# 🌍 ngworld 🌍

This project aims to illustrate how powerful the Angular compiler is by generating a Minecraft-like world out of an Angular application.

The project uses [ngast](https://github.com/mgechev/ngast) - a library which wraps the Angular compiler and provides user friendly API to it's metadata collector.

**Warning**: this project is a prototype/demonstration built on top of the Angular compiler. If you're looking for a tool for reverse engineering of Angular applications, you might be interested in [ngrev](https://github.com/mgechev/ngrev).

## How to use

```bash
npm i -g ngworld
mkdir world && ngworld -p [PATH_TO_TSCONFIG]
http-server .
```

## 🎄 ng-xmas 🎄

Over the weekend, before Christmas 2017, I built ng-xmas. That's variation of the original world which renders an Angular application as Christmas trees 🎄.

The world embeds the following rules:

* Each garden is an `NgModule`.
* Each tree inside of each garden is a component.
* The crowns of all trees are generated from the components' templates.
  * The template is being flatten after which the `ngworld` compiler consumes up to 7 elements.
  * If there's at least one directive attached to any of the elements, the toys on this layer of the tree are shown with `goldenrod` color otherwise they are `red`.

`ngworld` uses particle system plugin which performs heavy computations which can dramatically reduce the framerate. In order to prevent this, it's snowing only over a particular region of the world.

### How to Install

The Christmas edition of ngworld is behind the version `0.0.23-xmas`:

```bash
npm i -g ngworld@0.0.23-xmas
mkdir xmas && xmas -p [PATH_TO_TSCONFIG]
http-server .
```

### Code

You can find the code for ng-xmas in the [ng-xmas](https://github.com/mgechev/ngworld/tree/ng-xmas) branch.

## Demo

[Here](https://mgechev.github.io/ngworld/).

## License

MIT

---
_Source: https://npm.io/package/ngworld · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
