Blender 101: Monkey App #90025

Open
opened 2 years ago by Jeroen-Bakker · 22 comments
Collaborator

Research blender app templates on current limitations by implementing an minimum example.

The example should display a list of monkeys and a list of materials.

  • Dragging on a monkey would add the monkey in the 3d environment (3d view)
  • Dragging the material into the monkey changes the active monkey to the selected material.

The final app should only use a trackball navigation and should be fool proof.

With fool proof we mean that any functionality beside what has been described here should be reported/researched.
It should not be possible to get the app to a state other than described above.

This task is time limited and results should be discussed and prioritized.

Found limitations

    • Application templates have to be installed at the moment (no command-line launcher, or better an one-click launcher)
    • Registering asset libraries needs better BPY API. This is in the planning with the custom asset libraries. Currently we need to setup context, invoke operators and find out what happened. For the time being there is a hack in the userpref to work around this restriction. Fixed by using an ensure function so the context is correct

Usage

  • Install the (.zip) template via the "Blender menu"
  • Launch it with blender -W --app-template "blender_101"

20220112_blender_101.zip

{F10409396, width=100%}

TODO

    • There are areas that doesn't work or need blender internal knowledge to setup correctly. This needs to be improved in blender BPY/core
    • Remove asset library selection and filtering from UI (needs some tweaks in blender code of the template_asset_view) Use similar API as template_list eg (type=,column=)
      template=my_first_app.blendapp`. Currently users have to start normal blender instance to install the application template. After that they will be able to use such application template.
    • Support LMB rotation (and RMB panning) - #91538
    • Support mouse hover highlight for UIList elements - D12549
  • [] ...

Wish list

    • Way to launch the template from a folder, without having to install it (for development).
    • Application launcher (like the Blender benchmark, where it downloads blender on first launch, and run the app - it could have an option to embed Blender with it as well).
    • Maybe to have a .blend bundle with all the templates that can be opened by Blender.
    • Easier way how to install an application template. eg. double click on an .blendapp file should install the file in the user app templates (if not already existing and latest version) and start a new blender with the app template. `blender --app-
Research blender app templates on current limitations by implementing an minimum example. The example should display a list of monkeys and a list of materials. * Dragging on a monkey would add the monkey in the 3d environment (3d view) * Dragging the material into the monkey changes the active monkey to the selected material. The final app should only use a trackball navigation and should be fool proof. With fool proof we mean that any functionality beside what has been described here should be reported/researched. It should not be possible to get the app to a state other than described above. This task is time limited and results should be discussed and prioritized. ## Found limitations * - [ ] Application templates have to be installed at the moment (no command-line launcher, or better an one-click launcher) * - [ ] Registering asset libraries needs better BPY API. This is in the planning with the custom asset libraries. Currently we need to setup context, invoke operators and find out what happened. For the time being there is a hack in the userpref to work around this restriction. Fixed by using an ensure function so the context is correct ## Usage * Install the (.zip) template via the "Blender menu" * Launch it with `blender -W --app-template "blender_101"` [20220112_blender_101.zip](https://archive.blender.org/developer/F13763769/20220112_blender_101.zip) {[F10409396](https://archive.blender.org/developer/F10409396/blender-101.png), width=100%} ## TODO * - [ ] There are areas that doesn't work or need blender internal knowledge to setup correctly. This needs to be improved in blender BPY/core * - [ ] Remove asset library selection and filtering from UI (needs some tweaks in blender code of the `template_asset_view`) Use similar API as template_list eg (type=,column=) template=my_first_app.blendapp`. Currently users have to start normal blender instance to install the application template. After that they will be able to use such application template. * - [ ] Silence warnings in console of missing operators (needs tweaks in blender code.) - [done for empty keymaps ](https://developer.blender.org/rB73ed07648901c047887f2e8e94750a3eae9afb08). * - [ ] Support LMB rotation (and RMB panning) - #91538 * - [ ] Support mouse hover highlight for UIList elements - [D12549](https://archive.blender.org/developer/D12549) * [] ... ## Wish list * - [ ] Way to launch the template from a folder, without having to install it (for development). * - [ ] Application launcher (like the Blender benchmark, where it downloads blender on first launch, and run the app - it could have an option to embed Blender with it as well). * - [ ] Maybe to have a .blend bundle with all the templates that can be opened by Blender. * - [ ] Easier way how to install an application template. eg. double click on an `.blendapp` file should install the file in the user app templates (if not already existing and latest version) and start a new blender with the app template. `blender --app-
Jeroen-Bakker self-assigned this 2 years ago
Poster
Collaborator

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Poster
Collaborator

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Poster
Collaborator
* https://developer.blender.org/source/bf-app-templates/ repository with app templates. * There would be a VSE annotation tool, but not able to find it right now.
Collaborator

Added subscriber: @JulianEisel

Added subscriber: @JulianEisel
Collaborator

From what I know the idea was that the assets still use drag & drop, so not the mentioned click-to-activate behavior.

The main things I see missing are:

  • Asset Libraries as part of App Templates - We could support a builtin Current Application Template asset library, like the Current File library. Should be trivial to add.
  • Ability to hide specific buttons - I could imagine a simple whitelist system, where a configuration file defines which RNA properties and operators should be visible in the UI, others will be hidden. For more flexibility a way to override panels, headers menus and UI lists could be added (later on).
  • Possibly: Ability to remove action zones to open sidebars, headers and such.

Besides that the important bits should all be supported by app templates already:

  • Custom startup.blend
    • Allows setting the up the minimal screen layout, active tool, active asset library and such.
  • Custom userpref.blend
    • Includes custom keymap support, {nav Preferences > Interface > Corner Splitting} option, UI scale, ...

Further, we may want to look into simplifying the app template installation process. Ideally it should be possible to just download an app template (e.g. a .zip) and drag it into Blender. This may be out of scope of this experiment though.

From what I know the idea was that the assets still use drag & drop, so not the mentioned click-to-activate behavior. The main things I see missing are: * Asset Libraries as part of App Templates - We could support a builtin `Current Application Template` asset library, like the `Current File` library. Should be trivial to add. * Ability to hide specific buttons - I could imagine a simple whitelist system, where a configuration file defines which RNA properties and operators should be visible in the UI, others will be hidden. For more flexibility a way to override panels, headers menus and UI lists could be added (later on). * Possibly: Ability to remove action zones to open sidebars, headers and such. Besides that the important bits should all be supported by app templates already: * Custom startup.blend * Allows setting the up the minimal screen layout, active tool, active asset library and such. * Custom userpref.blend * Includes custom keymap support, {nav Preferences > Interface > Corner Splitting} option, UI scale, ... Further, we may want to look into simplifying the app template installation process. Ideally it should be possible to just download an app template (e.g. a .zip) and drag it into Blender. This may be out of scope of this experiment though.

Added subscriber: @GeorgiaPacific

Added subscriber: @GeorgiaPacific

Added subscriber: @AndresStephens

Added subscriber: @AndresStephens

Is this like an asset reviewer standalone?

Is this like an asset reviewer standalone?
user1 commented 2 years ago

Added subscriber: @user1

Added subscriber: @user1
user1 commented 2 years ago

I have a vision that in a few years Blender might become in Europe what "Scratch" is now in Britain - the open standard tool for teaching young pupil (age >=6) holisticly. I forsee them learning vector maths (intrinsicly!), logically thinking, speaking English, as young artists they'll learn to observe their environment better, and they might even philosophize over the rather numerical than material nature of the Multiverse - using Blender. Apart from just having lots of fun by creating and animating stuff.
I love what you are doing. It is important. Thank you!

I have a vision that in a few years Blender might become in Europe what "Scratch" is now in Britain - the open standard tool for teaching young pupil (age >=6) holisticly. I forsee them learning vector maths (intrinsicly!), logically thinking, speaking English, as young artists they'll learn to observe their environment better, and they might even philosophize over the rather numerical than material nature of the Multiverse - using Blender. Apart from just having lots of fun by creating and animating stuff. I love what you are doing. It is important. Thank you!
Poster
Collaborator

Added subscribers: @dfelinto, @pablovazquez

Added subscribers: @dfelinto, @pablovazquez
dfelinto changed title from Blender 101: Monkey App. to Blender 101: Monkey App 1 year ago
Owner

Added subscriber: @Harley

Added subscriber: @Harley
Owner

For the records, I uploaded the current version of the Blender 101 template to the svn .

For the records, I uploaded the current version of the Blender 101 template to the [svn ](https://developer.blender.org/source/bf-app-templates/browse/trunk/).
Collaborator

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren
Jeroen-Bakker was unassigned by dr.sybren 1 year ago
dfelinto was assigned by dr.sybren 1 year ago
Collaborator

According to @Jeroen-Bakker, @dfelinto took over.

According to @Jeroen-Bakker, @dfelinto took over.
Garek commented 1 year ago

Added subscriber: @Garek

Added subscriber: @Garek

Added subscriber: @AndyCuccaro

Added subscriber: @AndyCuccaro

Added subscriber: @KevinCurry_Unity

Added subscriber: @KevinCurry_Unity

Added subscriber: @edward88

Added subscriber: @edward88

Added subscriber: @Rathe-Hollingum

Added subscriber: @Rathe-Hollingum

Added subscriber: @ReyDiaz

Added subscriber: @ReyDiaz

Added subscriber: @Cjhosken

Added subscriber: @Cjhosken
lichtwerk removed the
legacy module/Pipeline, Assets & IO
label 7 hours ago
lichtwerk removed the
legacy module/User Interface
label 4 hours ago
Sign in to join this conversation.
No Label
Interest/Alembic
Interest/Animation & Rigging
Interest/Asset Browser
Interest/Asset Browser Project Overview
Interest/Audio
Interest/Automated Testing
Interest/Blender Asset Bundle
Interest/Collada
Interest/Compositing
Interest/Core
Interest/Cycles
Interest/Dependency Graph
Interest/Development Management
Interest/Eevee & Viewport
Interest/Freestyle
Interest/Geometry Nodes
Interest/Grease Pencil
Interest/ID Management
Interest/Images & Movies
Interest/Import/Export
Interest/Line Art
Interest/Masking
Interest/Modeling
Interest/Modifiers
Interest/Motion Tracking
Interest/Nodes & Physics
Interest/Overrides
Interest/Performance
Interest/Performance
Interest/Physics
Interest/Pipeline, Assets & I/O
Interest/Platforms, Builds, Tests & Devices
Interest/Python API
Interest/Render & Cycles
Interest/Render Pipeline
Interest/Sculpt, Paint & Texture
Interest/Text Editor
Interest/Translations
Interest/Triaging
Interest/Undo
Interest/USD
Interest/User Interface
Interest/UV Editing
Interest/VFX & Video
Interest/Video Sequencer
Interest/Virtual Reality
legacy module/Animation & Rigging
legacy module/Core
legacy module/Development Management
legacy module/Eevee & Viewport
legacy module/Grease Pencil
legacy module/Modeling
legacy module/Nodes & Physics
legacy module/Pipeline, Assets & IO
legacy module/Platforms, Builds, Tests & Devices
legacy module/Python API
legacy module/Rendering & Cycles
legacy module/Sculpt, Paint & Texture
legacy module/Triaging
legacy module/User Interface
legacy module/VFX & Video
legacy project/1.0.0-beta.2
legacy project/Asset Browser (Archived)
legacy project/BF Blender: 2.8
legacy project/BF Blender: After Release
legacy project/BF Blender: Next
legacy project/BF Blender: Regressions
legacy project/BF Blender: Unconfirmed
legacy project/Blender 2.70
legacy project/Code Quest
legacy project/Datablocks and Libraries
legacy project/Eevee
legacy project/Game Animation
legacy project/Game Audio
legacy project/Game Data Conversion
legacy project/Game Engine
legacy project/Game Logic
legacy project/Game Physics
legacy project/Game Python
legacy project/Game Rendering
legacy project/Game UI
legacy project/GPU / Viewport
legacy project/GSoC
legacy project/Infrastructure: Websites
legacy project/LibOverrides - Usability and UX
legacy project/Milestone 1: Basic, Local Asset Browser
legacy project/Nodes
legacy project/OpenGL Error
legacy project/Papercut
legacy project/Pose Library Basics
legacy project/Retrospective
legacy project/Tracker Curfew
legacy project/Wintab High Frequency
Meta/Good First Issue
Meta/Papercut
migration/requires-manual-verification
Module › Animation & Rigging
Module › Core
Module › Development Management
Module › Eevee & Viewport
Module › Grease Pencil
Module › Modeling
Module › Nodes & Physics
Module › Pipeline, Assets & IO
Module › Platforms, Builds, Tests & Devices
Module › Python API
Module › Render & Cycles
Module › Sculpt, Paint & Texture
Module › Triaging
Module › User Interface
Module › VFX & Video
Platform/FreeBSD
Platform/Linux
Platform/macOS
Platform/Windows
Priority › High
Priority › Low
Priority › Normal
Priority › Unbreak Now!
Status › Archived
Status › Confirmed
Status › Duplicate
Status › Needs Information from Developers
Status › Needs Information from User
Status › Needs Triage
Status › Resolved
Type › Bug
Type › Design
Type › Known Issue
Type › Patch
Type › Report
Type › To Do
No Milestone
No project
No Assignees
14 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#90025
Loading…
There is no content yet.