2022 SUG meetings week #35 summary – Puppetry

Puppetry demonstration via Linden Lab – see below.  Demos video with the LL comment “We have some basic things working with a webcam and Second Life but there’s more to do before it’s as animated as we want.”

The following notes were taken from the Tuesday, August 30th, 2022 Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Server Deployments

For the most up-to-date information, please refer to the deployment forum thread.

  • On Tuesday, August 30th, the simhosts on the Main SLS channel were updated with simulator version 574550. This release fixes an issue with some system textures being unavailable – notably the default water map being absent, resulting in totally flat glassy water or view-transparent mode having everything look solid..
  • On Wednesday, August 31st, all simhosts on the RC channels will be updated with simulator release 574611,which includes the above fixes + additional fixes (release notes pending at the the time of writing.

Available Official Viewers

On Tuesday, August 30th:

  • The Profiles viewer, 6.6.3.574158, was updated to de facto release status.
  • The Puppetry project viewer, version 6.6.3.574545, was issued – see below.

The remaining official viewers stay listed as:

  • Release channel cohorts:
    • Maintenance P (Preferences, Position and Paste) RC viewer version 6.6.3.573877 issued August 15.
    • Izarra Maintenance RC, version 6.6.3.573920, August 15.
    • Maintenance 3 RC viewer, version 6.6.3.573882, August 5.
  • Project viewers:
    • Love Me Render (LMR) 6 graphics improvements project viewer 6.6.2.573263, July 21.
    • Performance Floater project viewer, version 6.5.4.571296, May 10.

Puppetry

See also: the official blog post Introducing Second life Puppetry.

Previously referred to as “avatar expressiveness”,  Puppetry is intended to provide a means by which avatars can mimic physical world actions by their owners through tools such as a webcam and using technologies like inverse kinematics and the  LLSD Event API Plug-in (LEAP) system.

We are excited about Puppetry’s potential to change the way we interact inside Second Life.  For example, using a webcam to track your face and hands could allow your avatar to mimic your face animations and finger movement, or more natural positioning of the avatar’s hands and feet against in-world objects might also be possible.  Alternative hardware could be used to feed information into Second Life to animate your avatar – a game controller or mocap equipment.  There’s a lot to explore and try, and we invite the Second Life community to be involved in exploring the direction of this feature.

– from the official blog post

Note that this capability is still very much experimental / in development and is not feature-complete. Also, the following should be noted:

  • The Puppetry viewer is very much experimental,  and is required to view any puppetry animations – viewers without the supporting code will not show them.
  • The back-end support for the capability is only available on Aditi (the Beta grid) and within the following regions: Bunraku, Marionette, and Castelet.
  • No other special needs beyond the project viewer are required to “see” Puppetry animations. However, to use the capability to animate your own avatar and broadcast the results will take more work.
  • For further information, check out the documentation links below:

Again, please remember this is very much a “alpha” implementation of Puppetry:

  • Linden Lab is looking for feedback from the community in determining potential use cases and onward development.
  • The Lab will be hosting an open discussion on Puppetry on Thursday, September 8th, and 13:00PM SLT. This will take place at the Puppetry theatre in the Aditi  region of Castelet.

Please refer to the video for further discussion on the capability.

Update, September 1st

  • The discussion on puppetry mentioned in  the above articles will be the first such meeting, and if there is demand for it, there will be a similar meeting on Aditi on alternate Thursdays from September 8th onwards, to be held in the theatre on Aditi Castelet region.
  • These meetings will (initially) be very development focused rather than creator / user focused, given the overall status of the project.
  • It is advisable that attendees use the Puppetry project viewer when attending these meetings (available from the Alternate Viewers page), so that they might see any demonstration which may take place during meetings.

2022 SUG meetings week #34 summary

MarDayLine Pylons, July 2022 – blog post

The following notes were taken from the Tuesday, August 23rd, 2022 Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Server Deployments

For the most up-to-date information, please refer to the deployment forum thread.

  • On Tuesday, August 23rd, the simhosts on the Main SLS channel were updated with simulator version 574216. This includes the new LSL functions:
    • llReplaceEnvironment() – a scripted means to replace the environment in a parcel or a region, either for a single elevation track or the entire environment.
    • llSetEnvironment() – a scripted function to override the environmental settings for a region or a parcel. The owner of the script must have permission to modify the environment on the parcel or be an estate manager to change the entire region.
  • On Wednesday, August 24th, all simhost on the TC channel will be restarted without any deployment, leaving the also on simulator version 574216.

Available Official Viewers

On Monday, August 22nd, the Mesh Optimiser and Copy / Paste project viewers were both finally withdraw from the Alternate viewers download page, leaving the available official viewers as:

  • Release viewer: version 6.6.2.573358 – formerly the Maintenance 2 RC viewer, dated August 1, promoted August 4 – no change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Profiles RC viewer updated to version 6.6.3.574158, on August 18<.
    • Maintenance P (Preferences, Position and Paste) RC viewer version 6.6.3.573877 issued August 15.
    • Izarra Maintenance RC, version 6.6.3.573920, August 15.
    • Maintenance (N)omayo RC viewer, version 6.6.3.573882, August 5.
  • Project viewers:
    • Love Me Render (LMR) 6 graphics improvements project viewer 6.6.2.573263, July 21.
    • Performance Floater project viewer, version 6.5.4.571296, May 10.

In Brief

HTTP discussion: a fair amount of the meeting was given over to HTTP which touched upon:

  • HTTP/2 multiplexing / pipelining (to replace the current HTTP 1.1 pipelining (which in turn touched upon TLS updates and Curl version updates) – in short, something the Lab is looking towards, but not on the immediate horizon.
  • The potential to obtain headers from an HTTP response using llGetHTTPHeader, which itself incorporated discussions of requirements, risk in exposing SL to returns of strings with uncontrolled lengths such that a verbose web site might cause a LSL stack overflow,
  • I’m actually hardly the best place to relay the ins and outs of the discussions, so I’ll refer you to the video for more.

2022 CCUG meeting week #33 summary

Missing Melody, July 2022 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, August 18th 2022 at 13:00 SLT. These meetings are chaired by Vir Linden, and their dates and times can be obtained from the SL Public Calendar.

This is a summary of the key topics discussed in the meeting and is not intended to be a full transcript.

Official Viewers Status

  • Release viewer: version 6.6.2.573358 – formerly the Maintenance 2 RC viewer, dated August 1, promoted August 4 – no change.
  • Release channel cohorts:
    • Profiles RC viewer updated to version 6.6.3.574158, on August 18.
    • Maintenance P (Preferences, Position and Paste) RC viewer version 6.6.3.573877 issued August 15.
    • Izarra Maintenance RC, version 6.6.3.573920, August 15.
    • Maintenance (N)omayo RC viewer, version 6.6.3.573882, August 5.
  • Project viewers:
    • Love Me Render (LMR) 6 graphics improvements project viewer 6.6.2.573263, July 21.
    • Performance Floater project viewer, version 6.5.4.571296, May 10.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Copy / Paste project viewer, version 6.3.5.533365, dated December 9, 2019.

Materials and PBR Work

Please also see previous CCUG meeting summaries for further background on this project.

  • The back-end updates are now “all there”, and the focus is now on “tightening up” the graphics., the the image-based side of things now looking “pretty good”.
  • Internal testing currently involves Second Life, the new PBR / Materials viewer, the Kronos glTF 2.0 standard and Adobe Substance tools (Painter, Stager) to ensure that results displayed within Second Life are consistent with expectations when working within Substance Painter and with glTF.
  • Some inconsistencies with using directional lights created in Blender have been noted and subject to further testing.
  • Those with access to the Content Creation Discord server will be able to obtain an updated viewer soon. This will lack transparency support or LSL support; it will also have some “rough edges” around the UI and inventory support.
    • This is a test viewer only, and not for general consumption.
    • A more public Project viewer will be made through the Alternate Viewers channels when the work is more stable and suited for wider consumption.
  • Once the initial work on PBR  Materials is released, the graphics team will likely work on some quality of life improvements (e.g. bug fixes) for the graphics system, rather than launching into a new project immediately.

Possible New Inventory Fields

Whilst not solely related to content creation, the Lab has been discussing the potential of adding new inventory fields. Ideas being considered or also put forward at the meeting comprise:

  • Providing a thumbnail image of the inventory item, rather than having to rely solely on descriptive text.
  • A means of “tagging” inventory items (e.g. to define what they are in terms of being an attachment or not, and whether the attachment is / is not rigged, etc.), rather than just simply leaving them as a list of orange boxes.
  • Providing a formal means of “archiving” items that are not regularly used but which are not yet ready to be deleted (other than boxing things up and creating more orange boxes….).
  • Splitting head shapes and body shapes to make it easier for people who use different heads with the same body (or vice-versa).

In Brief

  • Requests are again surfacing for texture animation support in particles (see feature request BUG-5307). Those interested in seeing such capabilities should consider adding feedback to this Jira.
    • This led to questions on a complete overhaul of the SL particle system, which is not something currently under consideration as a possible future project at the Lab – which is not so say incremental updates are ruled out. Again, specific requests incremental updates system should be made via Jira.
    • For texture animations on particles, for example, the Lab would likely consider adopting the existing texture animation system for use with particles, rather than rebuilding the particle system to handle texture and other animations.
  • There was a brief discussion of a viewer-side Animation Override (AO) system (e.g. similar in nature to the Firestorm approach). This has been raised in the past at TPV Developer meetings, where it appears to get more robust discussion.
  • The question was raised of having support for user-defined custom shaders in Second Life. The short answer is “no”, as there are too many variables (a custom shader for a single scene may work – but what happens with 30 people utilise their own shaders / shaders made by others and all congregate at a single club? The rendering will not scale (also, with people all creating their own shaders, how can a consistent result be ensured? What about the risk of malicious shaders being used with content?).

Next Meeting

  • Thursday September 1st, 2022.

2022 SUG meetings week #33 summary

La Montagna Spaccata, July 2022 – blog post

The following notes were taken from the Tuesday, August 16th, 2022 Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Server Deployments

For the most up-to-date information, please refer to the deployment forum thread.

  • On Tuesday, August 16th, the simhosts on the Main SLS channel were updated to simulator version 573931, adding Premium Plus support to llGetObjectDetails() in LSL.
  • On Wednesday, August 17th, the simhosts on the RC channels will be updates with simulator version 574216. This includes the new LSL functions:
    • llReplaceEnvironment() – a scripted means to replace the environment in a parcel or a region, eEither for a single elevation track or the entire environment.
    • llSetEnvironment() – a scripted function to override the environmental settings for a region or a parcel. The owner of the script must have permission to modify the environment on the parcel or be an estate manager to change the entire region.

The Tuesday deployment took longer than anticipate, as has been accompanied by reports of back-end services issues (e.g. login failures, texture uploads failing, profile changes reverting) being experienced for some regions on coming back up. LL is investigating these issues).

Available Official Viewers

On Monday, August 15th:

  • A new Maintenance RC viewer – Maintenance P (Preferences, Position and Paste), version 6.6.3.573877, was issued.
  • The Izarra Maintenance RC viewer updated to version 6.6.3.573920.

The rest of the current crop of official viewers remains as:

  • Release viewer: version 6.6.2.573358 – formerly the Maintenance 2 RC viewer, dated August 1, promoted August 4 – no change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance (N)omayo RC viewer, version 6.6.3.573882, August 5.
    • Profiles RC viewer, version 6.6.2.573372, issued July 21.
  • Project viewers:
    • Love Me Render (LMR) 6 graphics improvements project viewer 6.6.2.573263, July 21.
    • Performance Floater project viewer, version 6.5.4.571296, May 10.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Copy / Paste project viewer, version 6.3.5.533365, dated December 9, 2019.

In Brief

  • BUG-232490 “not_at_rot_target fails inconsistently” is a re-filing of an old report (SVC-3324) which filed to get picked-up. The re-filling under the BUG project should ensure it is now properly triaged.
  • BUG-231553 “Revised: HTTP_ACCEPT not working as expected” (setting HTTP_ACCEPT on outgoing HTTP requests per: the function’s SL wiki notes doesn’t behave as expected. Currently you can set any values you like, but those settings aren’t reflected in outgoing requests). This may or may not be a bug, pending further user testing.
  • Please refer to the video for additional general discussion.

2022 SUG meetings week #32 summary

Bella’s Nocturne, June 2022 – blog post

The following notes were taken from the Tuesday, August 9th, 2022 Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Server Deployments

No deployment plan notes were available on the forums at this time of writing this update.

  • On Tuesday, August 9th, the simhosts on the Main SLS channel were restarted without any deployment, leaving them running simulator version 573176, comprising infrastructure updates.
  • On Wednesday, August,10th, all RC channels will updated to simulator version 573931, adding Premium Plus support to llGetObjectDetails() in LSL.

The long-promised new llReplaceEnvironment and llSetEnvironment should now go out in week #33, as Maestro had found a couple last minute bugs, which required the addition of an ability to override them at altitude and so prevented their inclusion in this week’s RC deployment.

Available Official Viewers

No changes to the current crop of official viewers at the start of the week, leaving them as:

  • Release viewer: version 6.6.2.573358 – formerly the Maintenance 2 RC viewer, dated August 1, promoted August 4 – New.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance (N)omayo RC viewer, version 6.6.3.573882, August 5.
    • Profiles RC viewer, version 6.6.2.573372, issued July 21.
    • Izarra Maintenance RC, version 6.6.2.573282, July 20.
  • Project viewers:
    • Love Me Render (LMR) 6 graphics improvements project viewer 6.6.2.573263, July 21.
    • Performance Floater project viewer, version 6.5.4.571296, May 10.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Copy / Paste project viewer, version 6.3.5.533365, dated December 9, 2019.

In Brief

  • More general discussion on parcel ban lines, security orbs and road / water / air vehicle travel (mostly, but not exclusively related to Mainland. This included BUG-231802 “Prevent vehicles from entering parcels their riders cannot access”), which is now being queued-up to be worked on at the Lab. While this will not help with aggressive orbs, it will help with issues of vehicle entering parcels set with restricted access and the passengers being ejected.
  • Scripted simulator communications:
    • Several people have reported llInstantMessage() is failing at times. This is proving hard to reliably reproduce, but the Lab is nevertheless investigating.
    • llRegionSayTo is also reportedly failing at times, but again, more investigation on this is required before definitive conclusions can be drawn.
    • These led to a wider discussion on simulator communications – please refer to the video for details.
  • Pivot points / object hierarchies. Following the discussion on these at the last Content Creation User Group (CCUG) meeting (see here), a Feature Request Jira has been raised (BUG-232445) and a bare-bones forum thread opened. Commenting on the linking of the two ideas, Rider Linden noted:
The whole discussion about object hierarchies is/was a bit tangential. Strictly speaking the two are not related. (It is a nice to have, but would be a huge multi-month effort to pull off).
  • For other general discussion and comments, please refer to the video below.

2022 week #31 CCUG and TPVD meetings summaries

The Shambles, June 2022 – click any image for full size

The following notes were taken from:

  • My audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, August 4th 2022 at 13:00 SLT.
  • The video recording by Pantera Północy of the Third-Party Viewer Developer (TPVD) meeting on Friday, August 8th, 2022 at 13:00  SLT. This video is embedded at the end of this summary, my thanks to her as always for recording the meetings.

These meetings are chaired by Vir Linden, and their dates and times can be obtained from the SL Public Calendar.

This is a summary of the key topics discussed in both meetings, and is not intended to be a full transcript of either.

Common to Both Meetings

Official Viewers Update

[TPVD meeting Video: 0:00-0:43]

  • On Thursday, August 4th, 2022, the Maintenance 2 RC viewer, version 6.6.2.573358 and dated August 1st, was promoted to de facto release status.
  • On Friday, August 5th, the Maintenance (N)omayo RC viewer was updated to version 6.6.3.573882.

The remaining official viewer pipelines are as follows:

  • Release channel cohorts:
  • Project viewers:
    • Love Me Render (LMR) 6 graphics improvements project viewer 6.6.2.573263, July 21.
    • Performance Floater project viewer, version 6.5.4.571296, May 10.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Copy / Paste project viewer, version 6.3.5.533365, dated December 9, 2019.

Graphics Preferences Updates

[TPVD Meeting Video: 5:05-17:26]

  • LL is deprecating a number of Graphics Preferences from the viewer. These include:
    • A number of obsolete options (e.g. terrain detail slider, avatar cloth option).
    • The removal of the abilities to turn off the Advanced Lighting Model (ALM) and turn off atmospheric shaders.
  • The latter two have been previously indicated, and form a part of the PBR  / materials work, where the plan is to eventually have two rendering paths: ALM with PBR support and ALM without PBR support.
  • HOWEVER:
    • While the options to disable ALM / Atmospheric Shaders are being removed from the official viewer, the actual rendering code for non-ALM rendering (aka forward rendering) is not at this point being removed.
    • The rendering code will not be removed from the viewer until such time as Linden Lab has a high level of confidence there is no significant impact on users’ SL experience in having to run with ALM enabled all the time, across the vast majority of supported hardware / edge-cases do not emerge where forward rendering is required.
  • There is still work to be done in order to get ALM running at the (generally faster) frame rates seen with non-deferred rendering, and these are said to be “coming in” to the viewer.
    • This work includes adding a slider for the number of local lights, so that users on lower specification hardware can dial-down the number of such lights that are rendered, thus helping to boost performance.
    • However, it was noted that if some doe experience issues due to running their viewer at High / Ultra settings (and their hardware cannot really handle this with ALM enabled), the will be encouraged to lower the quality slider.
  • Work still to be done on implementing a “data saving” / low bandwidth mode for those on metered Internet connections that will reduce the amount of data (e.g. materials maps) the viewer has to receive. However, the extent of this work and what it touches on in the viewer is still being specified / investigated.
  • LL is “reasonably confident” that content will look as intended under both non-PBR and PBR rendering, and that it will run as well under ALM as it does currently with ALM turned off.
  • It is hoped that eventually Second Life will reach a point where the ability to “turn off” PBR rendering could be removed from the viewer – however, it is acknowledged that there is hardware feature required by PBR that isn’t support by all client systems, so this dependency needs to be removed before this can be done.

CCUG Meeting Specific

Materials and PBR Work

Please also see previous CCUG meeting summaries for further background on this project.

  • Work is progressing both on the back-end and with the viewer, although the latter is not ready for any form of public consumption.
    • The plan remains to produce a test view that will be made available in the near future, and have regions on Aditi (the Beta grid) where it can be tested. Most of the viewer-side work is focused on bug fixing.
  • Overall, the focus remains on supporting the core glTF 2.0 specification, particularly now this is a recognised international standard (ISO/IEC 12113:2022).
    • This will provide six supported channels remain Albedo, Normal, Emissive, Ambient Occlusion, Roughness, and Metal.
    • Subsurface scattering and terrain support will not be part of the initial release.
  • While interest has been expressed in seeing a glTF mesh uploader in the viewer, this will also not be a part of the initial PBR supporting viewer; the focus is on getting the adopted core specification elements working before attempting to add additional capabilities.

Custom Pivot Points

There have been numerous requests over the years for allowing custom pivot points in mesh at upload (while pivot points can be defined in a .DAE file, they are currently ignored at upload). However, investigation has suggested provision of a solution is more complex than had been thought, prompting a discussion that ran through the majority of the meeting. The following is an attempt to provide a reasonable summary of that discussion.

  • Arbitrary pivot points can be defined using LSL. However, this is far from perfect.
    • It places a severe load on the simulator due to the number of object updates (rotation and translation)  that must be exchanged between the simulator and viewers as the object is moved.
    • As rotation is, by default around an object’s or linkset’s centre, LSL solutions often rely on workarounds by creators to achieve a desired result (such as by physically placing a small mesh triangle away from the object and then linking them, so as force the centre point between them to be offset relative to the object). Unfortunately, such techniques can have issues of their own (bounding box sizing, physics upsets, etc).
    • It relies on somewhat arbitrary interpolation to achieve a smooth rotation / pivot.
  • Some years ago, a code contribution was made to LL which would enable the pivot points / offsets set within a mesh .DAE be preserved at upload (e.g. by the addition of a simple check box in the uploader which would instruct it to import the file with the offset data).
    • Unfortunately this solution has its own potential limitation – it effectively bakes the offset point into the object, precluding any further manipulation of the offset were any required – it is thus not viewed by the Lab as optimal unless it can be shown it would in fact work for the vast majority of potential use-cases requiring custom pivot points.
  • One alternative solution might be to add a new parameter to all volumetric primitives which defines their origin point / centre. This would potentially be more flexible that the above approach, but also carries issues of its own, including:
    • It still may not work for all use-cases, leading to further alternative approaches being taken, leading to potential conflicts in execution between to different approaches.
    • What happens in linkset where child prims are specifically targeted for manipulation? if a custom pivot point is set within the root of the object, will it play nicely with the child prims that are themselves being manipulated (e.g. moved), or will things like scaling errors be introduced?
  • Perhaps the biggest issue identified with providing support for custom pivot points (and which has bearing elsewhere within and for Second Life) is that the platform has no real concept of a node hierarchy – it simply sees all items in the linkset as “children” of the root, whether or not they are linked to it directly or “via” other items in the linkset. (e.g. if you link prims “A” and “B” together, A is a “child” of “B”; if you then link “B” to “C”, SL sees “A” and “B” as equal “children” of C; whether in a node hierarchy, “B” would be seen as a child of “C”, but “A” would remain a child of “B”).
    • Such a hierarchy would more readily allow for pivot points, as they would be executed according to their parent child relationships, eliminating the need for additional script calculations to ensure the correct rotation / positioning of child primitives.
    • Unfortunately, implementing a node hierarchy at this point in Second Life’s development is not a trivial undertaking, and more work is required to fully understand the overall benefits implementing it would bring compared to the potential issues / drawbacks – and there does seem to be an appetite among some at the Lab to move in this direction.
  • Overall, no solid conclusions were drawn at the meeting – other than the fact that more structured discussion is required (including encompassing avatar attachments, which have their own raft of considerations).
  • In the meantime it has been suggested that an “amend” version of the code contribution that would allow pivot points / offsets defined within a mesh during creation are recognised and maintained by the uploader, rather than being ignored, is implemented within a test viewer, and this could be made available to creators for review / testing.

TPVD Meeting Specific

Changes to the Official Viewer Repositories and Build Process

[Video: 1:12-4:42]

  • This is an initiative to improve continuous update integration in the viewer and improve the viewer deployment process.
  • For TPVs and developers, the most visible aspect of this is moving the viewer repositories from BitBucket to GitHub.  This includes the viewer code base and the other public code bases currently in BitBucket (Autobuild, LLCA, etc.).
  • There are a number of reasons for doing this, including future potential to:
    • Automate pull requests for code.
    • Potentially simplifying the Code Contribution licence.
  • There work is being carried out in two phases: move the repositories to GitHub and then establish the infrastructure to take advantage of GitHub’s capabilities.
  • LL expects to spend a “couple of months” getting things in place before they are ready to offer a more precise timeline on the repository migration (which will be of core value to viewer developers), and will be looking to discuss this in future TPVD meetings.

Next Meetings

  • CCUG: Thursday August 18th, 2022.
  • Friday, September 2nd, 2022.