{"id":25208033,"url":"https://github.com/fki-htw/vrsketchinggeometry","last_synced_at":"2026-04-18T10:37:01.102Z","repository":{"id":157424144,"uuid":"633444876","full_name":"FKI-HTW/VRSketchingGeometry","owner":"FKI-HTW","description":"Unity package for sketching in Virtual Reality using geometry based objects","archived":false,"fork":false,"pushed_at":"2024-07-05T12:46:38.000Z","size":1617,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-05T04:19:42.869Z","etag":null,"topics":["centis","htw-berlin","package","sketching","unity","virtual-reality"],"latest_commit_sha":null,"homepage":"","language":"C#","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/FKI-HTW.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}},"created_at":"2023-04-27T14:07:58.000Z","updated_at":"2024-11-26T09:11:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"e8b2f0ba-8946-477c-9509-c3124fe578a5","html_url":"https://github.com/FKI-HTW/VRSketchingGeometry","commit_stats":null,"previous_names":["centis-htw/vrsketchinggeometry","fki-htw/vrsketchinggeometry"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/FKI-HTW/VRSketchingGeometry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FKI-HTW%2FVRSketchingGeometry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FKI-HTW%2FVRSketchingGeometry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FKI-HTW%2FVRSketchingGeometry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FKI-HTW%2FVRSketchingGeometry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FKI-HTW","download_url":"https://codeload.github.com/FKI-HTW/VRSketchingGeometry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FKI-HTW%2FVRSketchingGeometry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000859,"owners_count":26082951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["centis","htw-berlin","package","sketching","unity","virtual-reality"],"created_at":"2025-02-10T12:18:07.941Z","updated_at":"2025-10-09T06:50:31.684Z","avatar_url":"https://github.com/FKI-HTW.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VR Sketching Geometry\r\nWork in progress. Features may not be complete and the API may change.\r\n\r\nThis is a framework for developing 3D sketching applications in Unity.\r\n\r\n## Features:\r\n- smoothly interpolated lines\r\n- patch surfaces\r\n- ribbon shaped lines\r\n- organisation of sketch objects with groups\r\n- undo and redo\r\n- serialization of sketches\r\n- OBJ export of sketches\r\n\r\n## Installation\r\n\r\n### Manually from a local folder\r\n- open the Package Manager\r\n- click on \"+\"\r\n- choose \"Add package from disk...\"\r\n- locate the downloaded package\r\n- select the package.json file within the package\r\n\r\n### Automatically from URL\r\n- open the Package Manager\r\n- click on \"+\"\r\n- choose \"Add package from git URL...\"\r\n- enter the URL \r\n``` \r\nhttps://github.com/hunsri/VRSketchingGeometryUP.git#0.1.0\r\n```\r\n\r\n## Import the examples\r\n- open the Package Manager\r\n- locate the installed package\r\n- click on \"Samples\"\r\n- click on \"Import\"\r\n- files will be imported under `Assets/Samples/`\r\n\r\n## API documentation\r\nRead the **developer guide** and **API documentation** at the GitHub pages site. \u003c/br\u003e\r\nAlternatively, you can host these yourself too,\r\ncheck out the [Docs Reference](../../Docs.md) for further details!\r\n\r\n## Quick start\r\nThe following example script shows how to create a new line sketch object and add few control points to it using a command invoker.\u003c/br\u003e\r\nAt the end one command is undone.\u003c/br\u003e\u003c/br\u003e\r\nYou will have to reference a `DefaultReference` Scriptable Object in the inspector.\u003c/br\u003e\r\nAn example can be found under `SharedAssets/Assets/DefaultReferences.asset`.\u003c/br\u003e\r\nTo access `SharedAssets` you have to import it in the Package Manager (see [Import the examples](./README.md#import-the-examples))\u003c/br\u003e\r\n\r\n```C#\r\n    using UnityEngine;\r\n    using VRSketchingGeometry.SketchObjectManagement;\r\n    using VRSketchingGeometry;\r\n    using VRSketchingGeometry.Commands;\r\n    using VRSketchingGeometry.Commands.Line;\r\n\r\n    public class CreateLineSketchObject : MonoBehaviour\r\n    {\r\n        public DefaultReferences Defaults;\r\n        private LineSketchObject LineSketchObject;\r\n        private SketchWorld SketchWorld;\r\n        private CommandInvoker Invoker;\r\n\r\n        void Start()\r\n        {\r\n            SketchWorld = Instantiate(Defaults.SketchWorldPrefab).GetComponent\u003cSketchWorld\u003e();\r\n            LineSketchObject = Instantiate(Defaults.LineSketchObjectPrefab).GetComponent\u003cLineSketchObject\u003e();\r\n            Invoker = new CommandInvoker();\r\n            Invoker.ExecuteCommand(new AddObjectToSketchWorldRootCommand(LineSketchObject, SketchWorld));\r\n            Invoker.ExecuteCommand(new AddControlPointCommand(this.LineSketchObject, new Vector3(1, 2, 3)));\r\n            Invoker.ExecuteCommand(new AddControlPointCommand(this.LineSketchObject, new Vector3(1, 4, 2)));\r\n            Invoker.ExecuteCommand(new AddControlPointCommand(this.LineSketchObject, new Vector3(1, 5, 3)));\r\n            Invoker.ExecuteCommand(new AddControlPointCommand(this.LineSketchObject, new Vector3(1, 5, 2)));\r\n            Invoker.Undo();\r\n        }\r\n    }\r\n```\r\n\r\n## Workflow\r\n1. Instantiate a sketch world prefab. Easy access to prefabs is provided through the DefaultReferences asset at `SharedAssets/Assets/DefaultReferences.asset`.\r\n2. Create sketch objects and groups from prefabs and add them to the sketch object world. Execute commands using a CommandInvoker object for undo and redo functionality. All scripts are in the VRSketchingGeometry namespace.\r\n4. Serialize or export using methods of the sketch world script.\r\n5. Load serialized sketch world from the serialized xml file for further editing.\r\n\r\nThe [LegacyExample](./README.md#legacy-example) also shows this process in practice.\r\n\r\n## Samples\r\n\r\nVarious examples are provided under `VRSketchingGeometryPackage/Samples`.\r\nThese can be imported via the Unity Package Manager.\r\n(see [Import the examples](./README.md#import-the-examples))\r\n\r\n### Shared Assets\r\nContains all the assets required to run the examples.\r\nCan be used as a reference for the creation of own assets.\r\n\r\n### [Example Scenes](./Samples/ExampleScenes/Scenes/README.md)\r\nContains various examples. For further details please refer to [this readme](./Samples/ExampleScenes/Scenes/README.md).\r\n\r\n### Legacy Example\r\nContains a static scene with various messy test scripts and corresponding game objects.\r\n![sampleScene](https://user-images.githubusercontent.com/51961152/192534926-2c6406b1-4556-4808-baf7-9f8eeab0bc5f.png)\r\n\r\n## Notes\r\nThis is a conversion from the plugin version (https://github.com/tterpi/VRSketchingGeometry) to a package version.\r\nOriginally based on code from: https://github.com/bittermanq/KochanekBartelsSplines\r\n\r\n## Tests\r\n\r\nThere are unit tests using Unity Testing Framework. (https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/index.html)\r\nThey mostly cover the undoable commands and the generation and applying of data objects.\r\nCoverage of the unit tests should be expanded.\r\n\r\n**Before you can run the tests, you have to make sure the `CommandTestScene` is added in the Build Settings**\u003c/br\u003e\r\nThe tests are located at `Assets/VRSketchingGeometryPackage/Tests`.\u003c/br\u003e\r\nTo do that go to \"File\u003eBuild Settings...\" and check if `VRSKetchingGeometryPackage/Tests/Scenes/CommandTestScene` is present there.\u003c/br\u003e\r\nIf that's not the case you have to add it.\u003c/br\u003e\r\n\r\n![BuildSettings](https://user-images.githubusercontent.com/51961152/195391439-bf552078-04a4-4722-aa1f-a12d7c8d21d0.png)\r\n\r\n\r\n**To run the tests you have to open the Test Runner**\u003c/br\u003e\r\nYou can find it under \"Window\u003eGeneral\u003eTest Runner\".\u003c/br\u003e\r\nOnce the Test Runner is open, click on \"Play Mode\".\u003c/br\u003e\r\nYou can then select and perform the tests of your choice!\u003c/br\u003e\r\n\r\n![TestRunner](https://user-images.githubusercontent.com/51961152/195391886-76177d36-d95f-46c4-beba-3a93c37cb2f8.png)\r\n![UnitTestSelection](https://user-images.githubusercontent.com/51961152/195391910-92307dfc-6cba-44df-b87e-50a8dfba7976.png)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffki-htw%2Fvrsketchinggeometry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffki-htw%2Fvrsketchinggeometry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffki-htw%2Fvrsketchinggeometry/lists"}