Skip to content
Vulkan Toolkit
Common Lisp GLSL Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cimgui @ bec0266 updated cimgui reference Sep 19, 2019
examples incremental improvements to editor Jan 4, 2020
glfw @ 599fb3d GLFW submodule updated May 1, 2019
ifc initial changes for MacOSX Mojave Sep 20, 2019
shaders
src incremental improvements to editor Jan 4, 2020
.gitattributes
.gitmodules
LICENSE Create LICENSE May 2, 2019
README.md
igp.asd incremental improvements to editor Jan 4, 2020
vktk.asd Moved vktk-demo.lisp into it's own system (:igp) Sep 19, 2019

README.md

Quick start:

These instructions assume you have SBCL installed on your system with asdf and quicklisp. If you have a macOS port of SBCL that is single threaded, you can easily build a multithreaded version, but the single thread version should run the VkTk Demo just fine.

Install vulkan sdk.

git clone https://github.com/awolven/VkTk.git <vktk-dir>

Where <vktk-dir> is a placeholder for the directory you want git to create. Pick a directory name to use there. (Defaults to VkTk.)

cd <vktk-dir>

git submodule update --init --recursive

cd cimgui

git checkout cimgui-cffi

cd ..

Edit ifc/foreign-libraries.lisp:

Change *vktk-dir* to point to your <vktk-dir>.

Change *vulkan-sdk-path* to point to your vulkan sdk.

In emacs M-x slime.

(push "<vktk-dir>/" asdf:*central-registry*)

(asdf:oos 'asdf:load-op :vktk)

(vktk:run-demo)


What is vktk?

vktk is a library for programming Vulkan in Common Lisp.

"vktk" is an abbreviation for Vulkan Toolkit.

What can vktk do?

vktk provides an abstraction for Vulkan, GLFW, and ImGui.

Vulkan is an interactive 3d-graphics library specification with implementations on Windows, Linux, Android, and Mac. (vktk currently only supports Windows and Mac, but Linux could easily be added.) GLFW is a platform independent Windowing library, and ImGUI is a GUI library which supports interactive 3D libraries such as Vulkan, OpenGL and Direct3D.

Why Vulkan?

Vulkan aims to be the cross-platform accelerated 3D graphics library standard to replace OpenGL and is more flexible to program in threaded environments than OpenGL.

Why Common Lisp?

Common Lisp is a well supported, standardized, functional/imperative/object-oriented programming language that is designed to allow large applications to be written with it. Common Lisp is efficient and expressive but most of all I like it.

Why was vktk created?

I needed a 3D graphics/UI library for Computer Aided Design programming in Common Lisp. vktk has a sister project for using the OpenCascade solid modeler with Common Lisp.

You can’t perform that action at this time.