Kray for developers is a set of dynamically linked libraries that allows programmers to connect any modelling application to the Kray rendering engine.

Key features:

  • Availability
    • available for anyone, works with demo version
    • anyone can start development
  • Portability
    • client binary versions available for Windows and MacOS
    • developer versions for Android, Unixes and clones
    • still can run on its initial developement platform – AmigaOS
    • easily portable to any platform with C++ compiler
    • JavaScript version that runs on host side of modern web browsers (compiled with Emscripten, single thread speed close to native, but no multithreading support yet)
    • Java version (compiled with LLJVM, much slower than native version)
  • API
    • client side API written in C++ with source code available – anyone can port it anywhere
    • available wrappers for
      • C
      • Ruby
      • Pascal
      • JavaScript
      • Java Native Interface
  • Filesystem and networking
    • build in ram disk (for temporary files storage)
    • build in FTP client and server (for fetching scene files, and serving render results)
    • build in HTTP client (for fetching scene files)
    • build in Telnet client (for communitating with host application)
    • flexible search path system integrated with network accessing
  • Kray script
    • primary communication interface with Kray engine
    • C like syntax
    • three parse modes
      1. user readable
        • most readable
        • variables, expressions, functions, classes, objects
        • many useful operations like vector/matrices maths, string operations
      2. literal only
        • much faster parsing, for machine generated scripts
        • human readable
        • serializable
      3. binary mode
        • difficult to read by humans
        • most useful when host app and Kray share the same memory space
        • fastest
    • self documenting
      • can generate all commands script prototypes (help command)
      • can generate C++ prototypes
      • can generate HTML doc
  • Render preview interface
    • all text/graphics output and user input messages can be captured by host application
    • allows customized handling of render preview in operating system independent way

Kray3 online SDK documentation is available. There is also Kray3 live version which allows to play with KrayScript inside webbrowser.