{"id":18720816,"url":"https://github.com/chevp/cross-platform-angular-vulkan","last_synced_at":"2026-05-17T11:35:16.690Z","repository":{"id":260524661,"uuid":"881551281","full_name":"chevp/cross-platform-angular-vulkan","owner":"chevp","description":"Cross-Platform Angular and C++ Vulkan Application","archived":false,"fork":false,"pushed_at":"2025-01-18T17:33:08.000Z","size":248,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-26T06:42:15.956Z","etag":null,"topics":["angular","electron","vulkan"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chevp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-31T19:45:44.000Z","updated_at":"2025-01-18T17:33:10.000Z","dependencies_parsed_at":"2025-01-09T17:37:06.671Z","dependency_job_id":"11f67ebf-6594-46b6-bd14-8661f2253217","html_url":"https://github.com/chevp/cross-platform-angular-vulkan","commit_stats":null,"previous_names":["chevp/cross-platform-angular-vulkan"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chevp/cross-platform-angular-vulkan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chevp%2Fcross-platform-angular-vulkan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chevp%2Fcross-platform-angular-vulkan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chevp%2Fcross-platform-angular-vulkan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chevp%2Fcross-platform-angular-vulkan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chevp","download_url":"https://codeload.github.com/chevp/cross-platform-angular-vulkan/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chevp%2Fcross-platform-angular-vulkan/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33136888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","electron","vulkan"],"created_at":"2024-11-07T13:32:42.398Z","updated_at":"2026-05-17T11:35:16.672Z","avatar_url":"https://github.com/chevp.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Cross-Platform Angular and C++ Vulkan Application\n\nThis project enables cross-platform development using **Angular** for the UI, **C++ with Vulkan** for high-performance rendering, and **platform-specific integrations** using **Electron** for desktop (Windows) and **NativeScript** for Android.\n\n---\n\n### Components\n\n1. **Angular UI Layer**:\n   - Provides the UI across both platforms using Angular. Interacts with the C++ renderer through platform-specific communication layers (IPC in Electron, JNI in NativeScript).\n\n2. **C++ Renderer Layer (Vulkan)**:\n   - Core renderer handling Vulkan-based 3D rendering, scene management, and model updates. Shared code across both desktop and mobile platforms.\n\n3. **Platform-Specific Integration Layer**:\n   - **Electron (Desktop)**: Uses Node.js Addons and IPC to communicate with the C++ renderer.\n   - **NativeScript (Mobile)**: Uses JNI for communication between Angular and C++ renderer on Android.\n\n4. **Communication Layer**:\n   - Manages real-time data exchange between Angular and C++ (e.g., control parameters, renderer updates).\n\n---\n\n## Folder Structure\n\n```plaintext\nproject-root/\n├── angular-app/                          # Angular application\n│   ├── src/\n│   ├── dist/                             # Production build output\n├── cpp-renderer/                         # C++ Renderer and Vulkan code\n│   ├── Renderer.h\n│   ├── Renderer.cpp\n│   ├── main_binding.cpp                  # Electron Node.js binding\n│   ├── RendererJNI.cpp                   # JNI binding for NativeScript on Android\n│   └── CMakeLists.txt                    # C++ build file\n├── electron-app/                         # Electron-specific files for desktop\n│   ├── main.js                           # Electron main process\n│   ├── preload.js                        # Preload script\n│   ├── package.json                      # Electron configuration\n│   └── build/Release/addon.node          # Compiled Node.js addon\n├── nativescript-app/                     # NativeScript-specific files for Android\n│   ├── app/\n│   │   ├── src/main/java/com/yourapp/Renderer.java # Java file for JNI interface\n│   │   └── renderer-service.ts                   # NativeScript service for JNI\n├── README.md                                     # Project documentation\n└── Angular-C++-Vulkan-Tutorial.md                # Tutorial\n```\n\n---\n\n## Setup Instructions\n\n### 1. Set Up Angular\n\n1. Navigate to `angular-app/` and install dependencies:\n\n   ```bash\n   cd angular-app\n   npm install\n   ```\n\n2. Serve the Angular app (for development):\n\n   ```bash\n   ng serve\n   ```\n\n### 2. Set Up C++ Renderer with Vulkan\n\n1. Navigate to `cpp-renderer/`.\n2. Compile C++ files for your platform using CMake:\n\n   ```bash\n   mkdir build \u0026\u0026 cd build\n   cmake ..\n   make\n   ```\n\n### 3. Set Up Electron (Desktop)\n\n1. Go to `electron-app/` and install dependencies:\n\n   ```bash\n   cd electron-app\n   npm install\n   ```\n\n2. Start Electron with Angular:\n\n   ```bash\n   npm start\n   ```\n\n### 4. Set Up NativeScript (Android)\n\n1. Go to `nativescript-app/` and install dependencies:\n\n   ```bash\n   cd nativescript-app\n   tns install\n   ```\n\n2. Compile and run on Android:\n\n   ```bash\n   tns run android\n   ```\n\n---\n\n## Development Notes\n\n- **Electron**: Handles desktop-specific functionality via Node.js Addons and IPC. Launches Angular and manages communication with the C++ layer.\n- **NativeScript**: Provides a JavaScript bridge to interact with native Android features and C++ rendering logic using JNI.\n\nThis setup ensures that UI, rendering, and platform-specific code remain modular, making it easy to develop and maintain across desktop and mobile platforms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchevp%2Fcross-platform-angular-vulkan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchevp%2Fcross-platform-angular-vulkan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchevp%2Fcross-platform-angular-vulkan/lists"}