notliad GitHub avatar

df-smooth-movement

notliad

A DFHack plugin that adds smooth, render-only creature movement interpolation to Dwarf Fortress without altering game state or saves.

Stars

9

7-day growth

No data

Forks

1

Open issues

0

License

MIT

Last updated

2026-07-29

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It enhances the visual experience of Dwarf Fortress by interpolating creature sprites between tiles, making movement appear fluid while preserving the game's simulation integrity.

Who it is for

  • Dwarf Fortress players seeking smoother visuals
  • DFHack plugin users and enthusiasts
  • Modders interested in render-only enhancements
  • Dwarf Fortress streamers or content creators

Use cases

  • Improving the aesthetic appeal of creature movement during gameplay
  • Creating smoother-looking timelapses or recordings of fortresses
  • Enhancing visual feedback for unit movement without affecting simulation
  • Integrating as a lightweight visual mod in DFHack-based mod packs

Strengths

  • Render-only: no impact on pathfinding, saves, or gameplay logic
  • Simple installation via DFHack console commands
  • Open source under MIT license, allowing modification and redistribution
  • Includes a test target for the animation manager

Considerations

  • ABI-specific, requiring exact DF and DFHack version match
  • Only supports SDL 2D renderer (not OpenGL or other backends)
  • Limited to Dwarf Fortress 53.15 and DFHack 53.15-r2 for prebuilt binaries

README quick start

DF Smooth Movement

Smooth, render-only creature movement for Dwarf Fortress through DFHack.

The plugin interpolates matching creature sprites between adjacent tiles. It does not change unit positions, pathfinding, simulation ticks, saves, or gameplay state.

Compatibility

The current prebuilt release supports:

  • Dwarf Fortress 53.15
  • DFHack 53.15-r2
  • Linux or Windows x86-64
  • the SDL 2D renderer

DFHack C++ plugins are ABI-specific. Do not install the prebuilt binary on a different DFHack or Dwarf Fortress version. Rebuild from source instead.

Install

  1. Download the release archive for your operating system and exact DFHack version.
  2. Extract it into the Dwarf Fortress installation directory. The resulting plugin must be:
    • Linux: hack/plugins/smooth-movement.plug.so
    • Windows: hack/plugins/smooth-movement.plug.dll
  3. Start Dwarf Fortress through DFHack.
  4. Run these commands in the DFHack console:
load smooth-movement
enable smooth-movement

Check or disable the plugin with:

smooth-movement
disable smooth-movement

The status command prints the plugin version and whether it is enabled.

Build

Check out the matching DFHack source release and clone this repository under plugins/external/df-smooth-movement. Add this line to plugins/external/CMakeLists.txt:

add_subdirectory(df-smooth-movement)

Configure DFHack normally, then build:

cmake --build /path/to/dfhack-build --target smooth-movement

Windows builds require the MSVC 2022 toolchain used by DFHack. From Linux, the official DFHack Docker build environment can cross-compile the plugin with build/build-win64-from-linux.sh.

The plugin uses a vmethod interpose, so its CMake target links to DFHack's Lua library as required by the DFHack build system.

The animation manager has a dependency-free test target:

cmake --build /path/to/dfhack-build --target smooth-movement-test
/path/to/dfhack-build/plugins/external/df-smooth-movement/smooth-movement-test

Behavior

  • Movement uses a 100 ms smoothstep interpolation.
  • Camera movement, zoom, Z-level changes, resize, and viewport changes reset interpolation for one frame.
  • Ambiguous movements between identical sprites snap to the destination.
  • Main creature sprites crossing fire snap instead of being replayed over an unsafe layer reconstruction.
  • UI and

Description

Smooth visual creature movement for Dwarf Fortress via DFHack

Related repositories

Similar projects matched by category, topics, and programming language.

alecjacobson
Featured
alecjacobson GitHub avatar

alpha-wrap

A CGAL-free, MIT-licensed reimplementation of the Alpha Wrapping algorithm that takes a defective triangle soup and produces a watertight, manifold, outward-oriented mesh with controllable level of detail and tightness.

C++
5
hypervising
Featured
hypervising GitHub avatar

gta-enhanced-audio-queue-poc

A proof-of-concept tool that patches a synchronous three-slot audio queue in GTA V Enhanced, boosting frame rates from ~260 to ~499 FPS by removing coarse wait delays.

Design & Creative
3
ammaarreshi
ammaarreshi GitHub avatar

Generals-Mac-iOS-iPad

This repository ports Command & Conquer Generals: Zero Hour to run natively on Apple Silicon Macs, iPhones, and iPads without emulation, adding touch controls and modern rendering.

C++
1,523