Thistle Gulch Simulation - v0.2

Here’s the latest release notes. Check them out and join the community!

Thistle-Gulch v0.2 includes the following dependencies:

  • SAGA: v0.5

  • Runtime: v1.45

  • Bridge: v0.2

Thistle Gulch

Access is now public for the open source thistle-gulch python Bridge, but the Runtime (simulation engine) is still a private beta. You can still sign up here to request access. New cohorts are invited weekly! Thistle Gulch is free, but in active development, so we’re working on slowly ramping up access.

SAGA v0.5.0

Shouldn’t be any breaking API changes in this release, but the project is now using python’s black formatter and mypy for static checking of types to help ensure code quality. Black is a code formatter that standardizes python formatting. GitHub

Runtime 1.45.0

New Male Character Models

All the male characters have been updated​ to new meshes. All character meshes are still a work in progress, but these are an important improvement to the very simple low-poly characters we've been using up to this point. They not only look better, but better match our vision for them as you can see in their character icons. The models themselves are also more technically sound and will allow for blinking, emotions, expressions and more in the future.

Legacy “Reflect” Action is Removed

The new “Reflect” skill actually generates an inner monologue using the generate-conversations system. There was a legacy version that was still active for all characters but didn’t actually do anything except put the characters in a thinking pose, so that’s been removed.

Bridge 0.2.0

Make sure you you using the latest 0.2.0 bridge with the latest 1.45.0 Runtime or you may get errors.

Big Refactor

There are some code-breaking changes, but they are mostly related to the module’s structure. If you are coming from 0.1.0, then you should be able to fix your imports and everything else is pretty much the same. See the updated demos for the latest examples.

New Demos Architecture

Demos are now something that can be defined with a name, description, and function that is called when the demo is selected. It should be easier to follow how the demos work and to write your own if you want to use that system.

New async API

API calls are now simpler by running sequentially. Simply await each API call and it won’t progress until the API call was received and acknowledged by the Runtime. This will also allow data to be returned from API calls in the future. Note that the api is now on the Runtime object instead of the RuntimeBridge object. Github

on_ready Bridge Hook

​You can now register the code you want to run by setting bridge.on_ready ​to an async function. The Runtime will send this event to the Bridge, and allow you to hook in and do what you need to do before the simulation actually starts. There is an example of this in a new demo called "set start time".  Next release, we should have another hook for on_tick​ event as well that would allow you to do things in python on every simulation tick (about every second at normal speed).

api.set_start_time(datetime)

​Speaking of, there is a new API call available now to set the start time during the on_ready hook. There is a new "sim commands" demo section that shows how to use it. Note that you can only use this BEFORE the simulation resumes, so only during the on_ready hook. Other simulation commands we have so far (pause, resume, set_speed) can be used whenever, but until we have on_tick event available, they are a bit cumbersome to use.

Contributing

With black and mypy for both fable-saga and thistle-gulch python projects, any PRs will now be checked to ensure they follow its formatting standards or the tests will fail. fable-saga already has pretty good test coverage, and thistle-gulch now has pytest setup, just no real tests yet. As we develop and as others contribute back, we will require tests moving forward.

Next Steps

There’s a LOT planned for the short-term!

1) The first priority was allowing folks to use custom LLMs and logic with Thistle Gulch via SAGA. That should be in a good place to do RAG, custom models, custom chains, but we’ll keep creating demos to make it easier to get started.

2) Upgrading to the latest version of LangChain. That should provide out of the box support for lots of new models like Claude 3 and help cut down on the number of dependencies we inherit by using LangChain.

3) More control over the simulation itself, like using python code to update and drive the characters outside the confines of action and conversation generation. For instance:

  • Set which character is using the action-generation vs their default actions (which allows you to control costs and delays). You can already do this by setting command line arguments, but you’ll soon be able to change these settings on the fly via python.

  • Programmatically control the “player” camera to automatically focus on events or characters you currently care about like you can already do manually via the Runtime controls.

  • More events beyond generate_actions, generate_conversations, and on_ready: More simulation events will be opened up to our community to hook into as well. We mentioned on_tick, which will happen on every simulation tick, but expect to see even more events and this roadmap driven by what the community wants as we develop in public.

Frank Carey

Fable CTO

Previous
Previous

Thistle Gulch Simulation - v0.3

Next
Next

Join the Thistle Gulch Community