Skip to content
Snippets Groups Projects
Commit 713e5fd3 authored by Victor's avatar Victor
Browse files

Change the package name to de.tu-dresden.hyper.core

parent 496f5c37
Branches
No related tags found
No related merge requests found
...@@ -5,69 +5,13 @@ All notable changes to this project will be documented in this file. ...@@ -5,69 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 1.0.7 - 2025-06-07 ## [Unreleased]
### Added
- Add Spatial Audio to GameObject menu.
## 1.0.6 - 2025-06-07
### Added
- Add dependency to Meta XR Audio SDK.
- Add spatial audio to hand pose detection.
### Changed
- Dependency on Meta XR Interaction SDK to version 77.
- By default, the hand pose detection is now disabled.
## 1.0.5 - 2025-06-01
### Added
- Hand pose detection.
### Changed
- Now using MIT license.
### Removed
- Runtime asmdef since we don't have scripts for runtime.
## 1.0.4 - 2025-05-19
### Removed
- CircularButton and CircularHoldButton prefabs.
## 1.0.3 - 2025-05-19
### Fixed
- Editor assembly definition.
### Changed
- README.md
## 1.0.2 - 2025-05-14
### Fixed
- Fix gitignore file creation in Init Project.
## 1.0.1 - 2025-05-14
### Changed
- Remove `OVROverlayCanvas` from CircularButton and CircularHoldButton prefabs.
## 1.0.0 - 2025-05-14 ## 1.0.0 - 2025-06-17
### Added ### Added
- New prefabs: XR, CircularButton, and CircularHoldButton. - Add editor script to help setup a new project.
- Editor script to help setup a new project. - Add XR prefab.
...@@ -3,35 +3,28 @@ using UnityEngine; ...@@ -3,35 +3,28 @@ using UnityEngine;
public class GameObjectMenuEditor : MonoBehaviour public class GameObjectMenuEditor : MonoBehaviour
{ {
[MenuItem("GameObject/HCP-XR/XR Starter/XR")] [MenuItem("GameObject/HYPER/Spatial Audio")]
public static void AddXRPrefab() public static void AddSpatialAudioPrefab()
{ {
AddPrefab("XR"); AddPrefab("SpatialAudio");
} }
[MenuItem("GameObject/HCP-XR/XR Starter/Spatial Audio")] [MenuItem("GameObject/HYPER/XR")]
public static void AddSpatialAudioPrefab() public static void AddXRPrefab()
{ {
AddPrefab("SpatialAudio"); AddPrefab("XR");
} }
private static void AddPrefab(string prefabName) private static void AddPrefab(string prefabName)
{ {
// Path to the prefab in your package var prefabPath = "Packages/de.tu-dresden.hyper.core/Runtime/Prefabs/" + prefabName + ".prefab";
var prefabPath = "Packages/de.tu-dresden.hcp-xr.xr-starter/Runtime/Prefabs/" + prefabName + ".prefab";
// Load the prefab
var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath); var prefab = AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath);
if (prefab) if (prefab)
{ {
// Instantiate the prefab in the scene
var instance = (GameObject)PrefabUtility.InstantiatePrefab(prefab); var instance = (GameObject)PrefabUtility.InstantiatePrefab(prefab);
// Set the position of the prefab in the scene
instance.transform.position = Vector3.zero; instance.transform.position = Vector3.zero;
// Select the newly instantiated prefab
Selection.activeObject = instance; Selection.activeObject = instance;
Debug.Log(prefabName + " added to the scene."); Debug.Log(prefabName + " added to the scene.");
......
{ {
"name": "HCPXR.XRStarter.Editor", "name": "Hyper.Core.Editor",
"rootNamespace": "", "rootNamespace": "",
"references": [], "references": [],
"includePlatforms": [ "includePlatforms": [
......
...@@ -12,14 +12,26 @@ public class MainMenuEditor : MonoBehaviour ...@@ -12,14 +12,26 @@ public class MainMenuEditor : MonoBehaviour
{ "Assets/Art", new[] { "Animation", "Audio", "Materials", "Models", "Shaders", "Textures" } }, { "Assets/Art", new[] { "Animation", "Audio", "Materials", "Models", "Shaders", "Textures" } },
}; };
[MenuItem("HCP-XR/XR Starter/Init Project", priority = 0)] [MenuItem("HYPER/Core/Init Project", priority = 0)]
public static void InitProject() public static void InitProject()
{ {
AddGitignore(); AddGitignore();
EditPlayerSettings(); UpdatePlayerSettings();
CreateDefaultFolders(); CreateDefaultFolders();
} }
[MenuItem("HYPER/Core/Add .gitignore")]
public static void AddGitignoreMenuItem()
{
AddGitignore();
}
[MenuItem("HYPER/Core/Update Player Settings")]
public static void UpdatePlayerSettingsMenuItem()
{
UpdatePlayerSettings();
}
private static void AddGitignore() private static void AddGitignore()
{ {
var projectPath = Directory.GetParent(Application.dataPath)?.FullName; var projectPath = Directory.GetParent(Application.dataPath)?.FullName;
...@@ -34,7 +46,7 @@ public class MainMenuEditor : MonoBehaviour ...@@ -34,7 +46,7 @@ public class MainMenuEditor : MonoBehaviour
} }
// Path to the .gitignore file in your package // Path to the .gitignore file in your package
const string packageGitignorePath = "Packages/de.tu-dresden.hcp-xr.xr-starter/Resources/gitignore"; const string packageGitignorePath = "Packages/de.tu-dresden.hyper.core/Resources/gitignore";
if (File.Exists(packageGitignorePath)) if (File.Exists(packageGitignorePath))
{ {
...@@ -48,7 +60,7 @@ public class MainMenuEditor : MonoBehaviour ...@@ -48,7 +60,7 @@ public class MainMenuEditor : MonoBehaviour
} }
} }
private static void EditPlayerSettings() private static void UpdatePlayerSettings()
{ {
// Set the company name // Set the company name
PlayerSettings.companyName = "ST - TU Dresden"; PlayerSettings.companyName = "ST - TU Dresden";
...@@ -62,7 +74,7 @@ public class MainMenuEditor : MonoBehaviour ...@@ -62,7 +74,7 @@ public class MainMenuEditor : MonoBehaviour
Debug.Log("Player Settings updated: Company Name and Android package name."); Debug.Log("Player Settings updated: Company Name and Android package name.");
} }
[MenuItem("HCP-XR/XR Starter/Create Default Folders")] [MenuItem("HYPER/Core/Default Folders/Create")]
public static void CreateDefaultFolders() public static void CreateDefaultFolders()
{ {
foreach (var folder in Folders) foreach (var folder in Folders)
...@@ -85,7 +97,7 @@ public class MainMenuEditor : MonoBehaviour ...@@ -85,7 +97,7 @@ public class MainMenuEditor : MonoBehaviour
} }
} }
[MenuItem("HCP-XR/XR Starter/Delete Empty Default Folders")] [MenuItem("HYPER/Core/Default Folders/Delete Empty")]
public static void DeleteEmptyDefaultFolders() public static void DeleteEmptyDefaultFolders()
{ {
foreach (var folder in Folders) foreach (var folder in Folders)
......
MIT License MIT License
Copyright (c) 2025, HCP-XR, Chair of Software Technology, TU Dresden. Copyright (c) 2025, HYPER, Chair of Software Technology, TU Dresden.
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
......
# HCP-XR Starter # HYPER Core
This package helps you to get started quickly with your Unity XR projects. This package helps you to get started quickly with your Unity XR projects.
...@@ -9,15 +9,15 @@ Dependencies: ...@@ -9,15 +9,15 @@ Dependencies:
## How to install ## How to install
This package is available in the `HCP-XR` scoped registry. This package is available in the `HYPER` scoped registry.
- Name: `HCP-XR` - Name: `HYPER`
- URL: `https://registry.npmjs.com` - URL: `https://registry.npmjs.com`
- Scope: `de.tu-dresden.hcp-xr` - Scope: `de.tu-dresden.hyper`
Please follow [this snippet] to add the registry to your project. Please follow [this snippet] to add the registry to your project.
[this snippet]: https://git-st.inf.tu-dresden.de/hcp-xr/unity/xr-starter/-/snippets/14 [this snippet]: https://git-st.inf.tu-dresden.de/hyper/core/-/snippets/14
## Quick start guide ## Quick start guide
...@@ -28,11 +28,11 @@ Please follow [this snippet] to add the registry to your project. ...@@ -28,11 +28,11 @@ Please follow [this snippet] to add the registry to your project.
- On the **Enable Meta XR Feature Set**, select **Yes**. - On the **Enable Meta XR Feature Set**, select **Yes**.
- On the **Restart Unity**, select **Restart Editor**. - On the **Restart Unity**, select **Restart Editor**.
- On the **Interaction SDK OpenXR Upgrade**, select **Use OpenXR Hand (New Projects)**. - On the **Interaction SDK OpenXR Upgrade**, select **Use OpenXR Hand (New Projects)**.
1. Click **HCP-XR** > **XR Starter** > **Init Project**. 1. Click **HYPER** > **Core** > **Init Project**.
1. Right click on the **Hierarchy** panel, then click **HCP-XR** > **XR Starter** > **XR**. 1. Right click on the **Hierarchy** panel, then click **HYPER** > **Core** > **XR**.
1. Open **Meta** > **Tools** > **Project Setup Tool**, then click **Fix All** in all tabs. 1. Open **Meta** > **Tools** > **Project Setup Tool**, then click **Fix All** in all tabs.
[Install this package]: https://git-st.inf.tu-dresden.de/hcp-xr/unity/xr-starter/-/snippets/14 [Install this package]: https://git-st.inf.tu-dresden.de/hyper/core/-/snippets/14
## Attribution ## Attribution
......
...@@ -12,6 +12,10 @@ ...@@ -12,6 +12,10 @@
/[Uu]ser[Ss]ettings/ /[Uu]ser[Ss]ettings/
*.log *.log
# By default unity supports Blender asset imports, *.blend1 blender files do not need to be commited to version control.
*.blend1
*.blend1.meta
# MemoryCaptures can get excessive in size. # MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data # They also could contain extremely sensitive data
/[Mm]emoryCaptures/ /[Mm]emoryCaptures/
...@@ -74,5 +78,14 @@ crashlytics-build.properties ...@@ -74,5 +78,14 @@ crashlytics-build.properties
/[Aa]ssets/[Ss]treamingAssets/aa.meta /[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/* /[Aa]ssets/[Ss]treamingAssets/aa/*
# Visual Scripting auto-generated files
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
# IntelliJ IDEA # IntelliJ IDEA
.idea/ .idea/
# Samples folder
/Assets/Samples/
...@@ -1802,7 +1802,7 @@ MonoBehaviour: ...@@ -1802,7 +1802,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 27673ac1-cdb0-443f-a07d-6ff1d34daeca blockId: 27673ac1-cdb0-443f-a07d-6ff1d34daeca
instanceId: 736a3e3d-d0ea-4b0d-84b0-0abd2c585d00 instanceId: d3e51a0a-c213-498d-8249-978bb056acc4
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -1900,7 +1900,7 @@ MonoBehaviour: ...@@ -1900,7 +1900,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 27673ac1-cdb0-443f-a07d-6ff1d34daeca blockId: 27673ac1-cdb0-443f-a07d-6ff1d34daeca
instanceId: 24ff861b-b427-4c3b-af94-b773cf3cdc76 instanceId: 72cd381d-7b4f-4855-ad6a-836b889fec5a
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -5834,7 +5834,7 @@ MonoBehaviour: ...@@ -5834,7 +5834,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 6b67162c-2460-4766-a931-980388647573 blockId: 6b67162c-2460-4766-a931-980388647573
instanceId: 8b2221c2-c8d7-43bb-89af-d15479c1b60d instanceId: 40ff01ae-96b6-48d3-8083-e3e9a2737cce
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -7123,7 +7123,7 @@ MonoBehaviour: ...@@ -7123,7 +7123,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: f61a01e5-61c7-4589-bd2d-107bccae8f02 blockId: f61a01e5-61c7-4589-bd2d-107bccae8f02
instanceId: 90a1d30d-cf9a-4b54-b495-a02307aaed56 instanceId: 53b851ed-2587-4cf2-8410-4e8f3ad7cf98
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -8617,7 +8617,7 @@ MonoBehaviour: ...@@ -8617,7 +8617,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 8b26b298-7bf4-490e-b245-a039c0184303 blockId: 8b26b298-7bf4-490e-b245-a039c0184303
instanceId: 3a085df7-915c-4ada-b864-2cc9fac1a83b instanceId: 565fbe5f-09f0-4659-9610-71dd080e0ab3
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -10148,7 +10148,7 @@ MonoBehaviour: ...@@ -10148,7 +10148,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: f61a01e5-61c7-4589-bd2d-107bccae8f02 blockId: f61a01e5-61c7-4589-bd2d-107bccae8f02
instanceId: 4f5b70c3-ef73-47fd-ad41-27149e365ab9 instanceId: 47e9c777-ce49-4ebf-92ac-2df87bb6077e
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -10346,7 +10346,7 @@ MonoBehaviour: ...@@ -10346,7 +10346,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 81f55626-5fad-45e9-a1df-184f330da7ba blockId: 81f55626-5fad-45e9-a1df-184f330da7ba
instanceId: ffc224a0-206f-4bb1-9fc5-96a9b614f4a1 instanceId: ce9a88a6-7012-474c-be94-2577f5110288
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -10790,7 +10790,7 @@ MonoBehaviour: ...@@ -10790,7 +10790,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 6b67162c-2460-4766-a931-980388647573 blockId: 6b67162c-2460-4766-a931-980388647573
instanceId: 54c956d3-66fd-4825-b217-7eb34574da0a instanceId: 24ac9f14-8731-474f-bc3b-dbffa4126e4e
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -11201,7 +11201,7 @@ MonoBehaviour: ...@@ -11201,7 +11201,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 0393ca30-f2a9-4865-a40f-f9a68d01c3a9 blockId: 0393ca30-f2a9-4865-a40f-f9a68d01c3a9
instanceId: 6be06880-a0cf-46c3-a6d2-45348839de0c instanceId: d4bc59f6-79c8-4cfa-9008-f8085740439a
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -11867,30 +11867,6 @@ MonoBehaviour: ...@@ -11867,30 +11867,6 @@ MonoBehaviour:
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: AprilTagDetector, HCPXR.PCAAprilTag
m_MethodName: Activate
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: AprilTagVisualizer, HCPXR.PCAAprilTag
m_MethodName: HideAll
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
_whenUnselected: _whenUnselected:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
...@@ -12357,7 +12333,7 @@ MonoBehaviour: ...@@ -12357,7 +12333,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: e47682b9-c270-40b1-b16d-90b627a5ce1b blockId: e47682b9-c270-40b1-b16d-90b627a5ce1b
instanceId: f3aa2e88-bbc3-499e-9bae-d86015e47fbf instanceId: 0fd51142-5936-41de-a060-b43f25b456f6
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -13086,7 +13062,7 @@ MonoBehaviour: ...@@ -13086,7 +13062,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 8b26b298-7bf4-490e-b245-a039c0184303 blockId: 8b26b298-7bf4-490e-b245-a039c0184303
instanceId: a6b0a7e1-875d-4831-b332-da2b8b9bef3e instanceId: 27b5eec9-94b6-471d-ad36-b5df42bfd52a
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -13826,7 +13802,7 @@ MonoBehaviour: ...@@ -13826,7 +13802,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: f0540b20-dfd6-420e-b20d-c270f88dc77e blockId: f0540b20-dfd6-420e-b20d-c270f88dc77e
instanceId: 9afcf79a-338e-4d24-ba21-77a9a3a1c475 instanceId: a975e1c0-e950-48d5-b2bd-284ec1c3c09a
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -14674,7 +14650,7 @@ MonoBehaviour: ...@@ -14674,7 +14650,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: f10154e0-16b2-492f-97d0-6639f69e7df6 blockId: f10154e0-16b2-492f-97d0-6639f69e7df6
instanceId: 147e05fe-44a4-4163-9ecb-6d6a393a788a instanceId: 23355f72-d449-4c9c-af9b-5a80712fe5b4
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -15905,7 +15881,7 @@ MonoBehaviour: ...@@ -15905,7 +15881,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 5817f7c0-f2a5-45f9-a5ca-64264e0166e8 blockId: 5817f7c0-f2a5-45f9-a5ca-64264e0166e8
instanceId: 44808c74-8a26-46f3-a2ce-f1d32e2400d7 instanceId: 20ec9dea-8785-4bd1-ab6a-4378d5131ed2
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
...@@ -17043,7 +17019,7 @@ MonoBehaviour: ...@@ -17043,7 +17019,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
blockId: 5817f7c0-f2a5-45f9-a5ca-64264e0166e8 blockId: 5817f7c0-f2a5-45f9-a5ca-64264e0166e8
instanceId: 51c2fb62-97c4-4c0d-b9f6-6c1f3239b598 instanceId: 1c452584-7e00-4751-b799-d2db2351ba7c
version: 1 version: 1
installationRoutineCheckpoint: installationRoutineCheckpoint:
_installationRoutineId: _installationRoutineId:
......
{ {
"name": "de.tu-dresden.hcp-xr.xr-starter", "name": "de.tu-dresden.hyper.core",
"version": "1.0.7", "version": "1.0.0",
"displayName": "HCP-XR Starter", "displayName": "HYPER Core",
"description": "This package helps you to get started quickly with your Unity XR projects.", "description": "This package helps you to get started quickly with your Unity XR projects.",
"unity": "6000.0", "unity": "6000.0",
"changelogUrl": "https://git-st.inf.tu-dresden.de/hcp-xr/xr-starter/-/blob/main/CHANGELOG.md", "changelogUrl": "https://git-st.inf.tu-dresden.de/hyper/core/-/blob/main/CHANGELOG.md",
"licensesUrl": "https://git-st.inf.tu-dresden.de/hcp-xr/xr-starter/-/blob/main/LICENSE", "licensesUrl": "https://git-st.inf.tu-dresden.de/hyper/core/-/blob/main/LICENSE",
"dependencies": { "dependencies": {
"com.meta.xr.sdk.audio": "77.0.0", "com.meta.xr.sdk.audio": "77.0.0",
"com.meta.xr.sdk.interaction.ovr": "77.0.0", "com.meta.xr.sdk.interaction.ovr": "77.0.0",
"com.unity.xr.openxr": "1.14.3" "com.unity.xr.openxr": "1.14.3"
}, },
"author": { "author": {
"name": "HCP-XR", "name": "HYPER",
"url": "https://tu-dresden.de/ing/informatik/smt/st" "url": "https://tu-dresden.de/ing/informatik/smt/st"
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment