SVG rendering

The chess.svg module renders SVG Tiny images (mostly for IPython/Jupyter Notebook integration). The piece images by Colin M.L. Burnett are triple licensed under the GFDL, BSD and GPL.

chess.svg.piece(piece, size=None)[source]

Renders the given chess.Piece as an SVG image.

>>> import chess
>>> import chess.svg
>>> chess.svg.piece(chess.Piece.from_symbol("R"))  
chess.svg.board(board=None, *, squares=None, flipped=False, coordinates=True, lastmove=None, check=None, arrows=(), size=None, style=None)[source]

Renders a board with pieces and/or selected squares as an SVG image.

  • board – A chess.BaseBoard for a chessboard with pieces or None (the default) for a chessboard without pieces.
  • squares – A chess.SquareSet with selected squares.
  • flipped – Pass True to flip the board.
  • coordinates – Pass False to disable coordinates in the margin.
  • lastmove – A chess.Move to be highlighted.
  • check – A square to be marked as check.
  • arrows – A list of Arrow objects like [chess.svg.Arrow(chess.E2, chess.E4)] or a list of tuples like [(chess.E2, chess.E4)]. An arrow from a square pointing to the same square is drawn as a circle, like [(chess.E2, chess.E2)].
  • size – The size of the image in pixels (e.g., 400 for a 400 by 400 board) or None (the default) for no size limit.
  • style – A CSS stylesheet to include in the SVG image.
>>> import chess
>>> import chess.svg
>>> board = chess.Board("8/8/8/8/4N3/8/8/8 w - - 0 1")
>>> squares = board.attacks(chess.E4)
>>> chess.svg.board(board=board, squares=squares)  
class chess.svg.Arrow(tail, head, *, color='#888')[source]

Details of an arrow to be drawn.


Start square of the arrow.


End square of the arrow.

color = "#888"

Arrow color.