====== Dynamic Projection ===== ~~HERO-IMAGE {{:engagement:start:thegrumpus:dynamic_projection:grumpus_projection_hero.png}}~~ ~~HERO-SUBTITLE Community created content in a projected world~~ ===== Summary ===== This article is related to the Great and Grand Rumpus Exhibition 2021-2022 and refers to a full wall projection as part of the installation. The project is a digital and dynamic scene/environment populated with content created by members of the public. The content is created through workshops and then curated and seamlessly dynamically added to the projection. The Proof of concept is developed in house but will rely on community members or other stakeholders to contribute to development in order to be finalised. An appearance of the base environment or backdrop will be based on the overall theme of the Grumpus as well as directed by the visual id/style guide produced externally. April 2020 - Phil Gullberg, Applied Creativity ===== Technical requirements ===== The framework must have the ability to do the following: - Load assets (3d models, audio files, 2d sprites, etc.) dynamically into the project without restarting the projection, loading screens, etc. - Adding new assets must be simple and needs to support a bit of meta data do be attached - Creator credits, stories, inspiration - Movement, animations, colors, etc. - Needs to be custom resolution - Needs to work at a stable framerate (30fps, 60 ideally) ===== Process ===== The current direction is to use the Unity game engine as it allows us to create AssetBundles of created assets in a project, these in turn can be downloaded and loaded into a project seamlessly. * Workshop attendees create artefacts (using digital illustration software or pen and paper) * Artefacts are sent off to a "curator" who will scan or make necessary changes/tweaks to make the artefact compatible in the project * Curator creates an asset bundle and uploads to server (following a naming convention that creates unique and identifiable bundle names) * The live Unity projection instance will look for new asset bundles on the server and download them and include them in the project ===== Using Unity: Pros and Cons ===== * Pros * Technically adept (has all the bells and whistles for what we need to do) * High fidelity (Post processing, animations, audio) * Cons * Using Unity in the workshops not viable (learning curve, time) * Artefacts reduced to 2D images (scanned analogue or digital) due to time and technical constraints ===== Unity tech tests ===== As proof of concept we explored options to solve the following tech challenges: - Create AssetBundle and automatically download the AssetBundle from a server - Load and display AssetBundle contents in a project scene Project is attached below (under resources). ===== Challenges / Questions ===== * Do we need to create prefabs or are raw files better? * Might need to create a script/attachment/public variables for any additional information that comes with the asset - a pro for use of prefabs * Manage participant files, how to get them into the projection? * Do we store files on a server or locally? * AssetBundle for each workshop * Who curates content? Facilitator or a responsible SLQ staff? * What do participants get to do, import into Unity > add info > export? * Which types of content? * 3D models * Textures for the models? perhaps palette file? Blender: color faces * Audio files? * Will any of these object move? animate? * Will objects interact with each other? * What are some options we can give contributors to add value to their work within the projects? * Lighting (colours) * Predetermined movement/animation * Particle effects * Specific positioning * Scaling ===== Resources ===== * [[https://docs.unity3d.com/Manual/LoadingResourcesatRuntime.html|Unity documentation - Loading Resources at Runtime]] * {{ :engagement:grumpus:dynamic_projection:grumpus-unity-test.zip |Grumpus Unity Test Project}}